[英]validate.js always validate
我的jQuery:
<script src="js/jquery-1.4.4.js" type="text/javascript"></script>
<script src="js/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var v = $("#form1").validate({
ignore: ':hidden',
rules: {
txtTest: { required: true }
},
messages: {
txtTest: "User name is required."
}
});
$("#btnTest").click(function() {
if (v.form()) {
alert("Success");
}
else {
alert("Fail");
}
});
});
</script>
而我的HTML是:
<input type="text" id="txtTest" />
<input type="button" id="btnTest" value="Test" />
盡管txtTest
為空,但其火災alert("Success");
。切勿進入else
條件。切勿觸發火災alert("Fail");
。它在螢火蟲中沒有顯示任何錯誤。我找不到我的錯誤。
請參閱演示工作 http://jsfiddle.net/Xc3d5/ 用電子郵件進一步 http://jsfiddle.net/LjMQ2/1/
請參閱驗證element
api: http : //docs.jquery.com/Plugins/Validation/Validator/element#element
使用v.form()
不會做任何事情,我認為使用.element
然后傳遞要驗證的元素。 其余的演示將使其清楚。
希望這可以幫助 :)
碼
var v = $("form").validate({
submitHandler: function() {
console.log('successful submit');
return false;
}
});
$("#btnTest").click(function() {
if (v.element('#txtTest')) {
alert("Success");
}
else {
alert("Fail");
}
});
您遇到的唯一問題是表單中的每個輸入或選擇都必須具有name
屬性。
因此,您的輸入應如下所示:
<input type="text" id="txtTest" name="txtTest" />
除此之外,您的所有演示對我來說都很好-我將@Tats_innit演示簡化為: http : //jsfiddle.net/ryleyb/LjMQ2/2/
如果您需要在表單提交成功失敗時做一些特定的事情,那么正確的位置應該在submitHandler
或invalidHandler
。 如果要觸發驗證,則合理的做法是執行$('form').submit()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.