我的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");
。它不会在firebug中显示任何错误。我无法找到我的错误。谢谢。
答案 0 :(得分:0)
请参阅工作演示 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");
}
});
答案 1 :(得分:0)
您遇到的唯一问题是表单中的每个输入或选择都必须具有name
属性。
所以你的输入应该是这样的:
<input type="text" id="txtTest" name="txtTest" />
除此之外,你的所有演示对我来说都很好 - 我将@Tats_innit演示简化为:http://jsfiddle.net/ryleyb/LjMQ2/2/
如果您在表单提交成功失败时需要执行特定操作,那么正确的位置将位于submitHandler
或invalidHandler
。如果您想触发验证,合理的做法是$('form').submit()
。