簡體   English   中英

jQuery .valid()無法正常工作? (驗證插件)

[英]jQuery .valid() not working? (Validation Plugin)

我正在使用jQuery Validation Plugin ,我的代碼無法按預期工作。 我想要的是,當我單擊“提交”按鈕時,程序將檢查表單是否正確填寫並包含url,然后運行函數。 在這種情況下,它總是alert('true )。

$(document).ready(function(){
    $('#button1').submit(function() {
        if($("#button1").valid()){
            alert('true');
        }
        else{
            alert('false');
        }
    });
});

不知道這是否相關,但是我正在使用Flask和WTForms:

形成:

class SVN_Path(Form):
    svn_url1=StringField('SVN Directory:',[validators.URL()])
    svn_url2=StringField('SVN Directory:',[validators.URL()])

HTML:

<form id="button1" action="{{ url_for('test4') }}"method="post" name="SVNPATHS">
    {{form1.hidden_tag()}}
    <br>
    <div class="svninput" id="input1">
        {{ form1.svn_url1.label }}
        {{ form1.svn_url1 }}
    </div>
    <input id="update" class="button" type="submit" name="updatepaths" value="Update">
    <div class="svninput" id="input2">
        {{ form1.svn_url2.label }}
        {{ form1.svn_url2 }}
    </div>
</form>

更新

    $('#button1').submit(function(){
        var is_valid = $(this).validate({
            rules: {
                svn_url1: {
                    required: true,
                    url: true
                },
                svn_url2: {
                    required: true,
                    url: true
                }
            }
        });
        if(is_valid){
            alert('true');
        }
        else{
            alert('false');
        }
    });
});

我嘗試了Dirn提出的建議,但是即使兩個字段都為空,這仍然會返回true。

您可以這樣嘗試:

var form = $( "#button1" );
form.validate();
$( "#update" ).click(function() {
  alert( "Valid: " + form.valid() );
});

這將在單擊按鈕時而不是單擊表單時驗證表單。

您尚未設置任何驗證規則。 插件將兩個字段都視為可選字符串。 您可以通過兩種方法進行更改。

<input type="url" name="svn_url1" required>

(請注意,您有時將其稱為svn_url1 ,有時也稱為svn_url1s 。)

最簡單的方法是使用WTForm的URLField

from wtforms.fields.html5 import URLField
from wtforms.validators import wtforms.validators.DataRequired

class SVNPath(Form):
    svn_url1 = URLField(validators=[wtforms.validators.DataRequired()])

另一種方法是對表單對象使用validate方法,並將驗證規則傳遞給它。

$('#button1').submit(function() {
  var is_valid = $(this).validate({
      rules: {
        svn_url1: {
          required: true,
          url: true
        }
      }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM