[英]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.