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