我有一个使用@ Html.ValidationMessageFor的MVC解决方案以及$('。btn')。click()函数来显示一个简单的“Loading ...”对话框。如果表单验证失败,我想取消此click()函数操作。我查看了jquery.validation.unobtrusive库(并将其包含在我的解决方案中),并且我正在尝试按如下方式进行检查。
$('.btn').click(function () {
if ($(this).validate().valid()) {
$("#initialWaitTableLoad").fadeIn();
}
});
此验证检查不起作用,仍在执行fadeIn()方法。如何在验证失败时阻止此操作发生?
答案 0 :(得分:2)
如果您需要在点击按钮时检查表单的有效性,您可以在点击处理程序中使用.valid()
方法并将.valid()
附加到form
,而不是按钮,就像你做的那样。
$('.btn').click(function () {
if ($('#myform').valid()) { // test validity of the form
$("#initialWaitTableLoad").fadeIn();
}
});
修改强>:
$('#myform')
只是我上面的通用示例。检查DOM并使用您希望针对此特定表单的任何jQuery选择器。
答案 1 :(得分:1)
您需要检查表单上的有效性,而不是按钮。在你的情况下,$(this)指的是刚刚点击的按钮。如果可能,编辑您的函数以在表单提交而不是按钮单击上运行。
$('#myform').submit(function () {
if ($(this).valid()) {
$("#initialWaitTableLoad").fadeIn();
}
});