我有一个jQuery函数绑定到我的提交按钮,如下所示:
$(function () {
$('#signupform').submit(function () {
alert('test');
});
});
但是,它会触发表单是否有效。我的模型使用各种DataAnnotations进行修饰,客户端验证运行良好,但我只希望在验证表单时触发jQuery函数。我该如何做到这一点?
编辑:为了澄清,我正在使用MVC DataAnnotations + jQuery的不显眼的javascript来处理客户端验证。我没有写自己的javascript验证例程。内置的jQuery验证在验证表单方面做得很好,但我只需要知道如何在我自己的函数中将验证结果转换为布尔值。
答案 0 :(得分:119)
如果您使用jquery验证不显眼的验证,您可以:
$(function () {
$('#signupform').submit(function () {
if($(this).valid()) {
alert('the form is valid');
}
});
});
答案 1 :(得分:8)
$(function () {
$('#signupform').submit(function (e) {
if (validateForm() === true) {
alert('Form is valid.');
}
});
});
注意,validateForm()
函数将是您在浏览器中用于测试验证的函数。编辑:这确实是jQuery的$(this).valid()
。
注意:在澄清问题时,上面的答案是停止表单提交验证的一种方法,而不是所需的技术(jQuery valid() validation)。有关详细信息,请参阅Darin Dimitrov的答案。
此外,在重新阅读原始问题时,意图与我最初描述的完全相反。因此,我编辑了演示验证的功能响应,而不是如何阻止提交表单。