我是MVC验证的新手。当我使用提交表单更改下拉列表中的索引时,我试图忽略验证。但是,如果我在启动验证时有另一个提交按钮,则下面的方法将无效。
下拉列表:
$("#dropdown").change(function () {
$('#MyForm').validate().cancelSubmit = true;
$('#MyForm').submit();
});
另一个按钮:
$("#Button").click(function () {
$('#MyForm').removeData('validator');
$('#MyForm').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($('#MyForm'));
$('#MyForm').submit();
});
因为我有一些html元素是由ajax调用动态生成的,我也想验证那些动态元素,当我点击提交时。这就是我这样做的原因:
$('#MyForm').removeData('validator');
$('#MyForm').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($('#MyForm'));
答案 0 :(得分:3)
最后,我在下面做了一些事情,我解决了这个问题。
$("#dropdown").change(function () {
$('#MyForm').removeData('validator');
$('#MyForm').removeData('unobtrusiveValidation');
$('#MyForm').validate().cancelSubmit = true;
$('#MyForm').submit();
});
答案 1 :(得分:2)
@using (Html.BeginForm())
{
{ HtmlHelper.ClientValidationEnabled = false;}
}
或
$('input, textarea, select', 'form').each(function () {
$(this).attr('data-val', 'false');
});
答案 2 :(得分:0)
您还可以为表单提交按钮添加特殊属性:
<button type="submit" formnovalidate>