我有两个提交按钮返回,继续。单击“返回”时,如何禁用客户端验证。我试图将cancel class添加到按钮属性,但它接缝无效。
UPD。实际上这是有效的cancel class。但是如果你动态添加它(通过javascript),它就无法正常工作。
答案 0 :(得分:14)
我将事件处理程序附加到某些按钮,这些按钮改变了该特定表单上验证器对象的设置。
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
在MVC3中,这对我来说就像是一种魅力。
我不知道这是否对你有所帮助,但由于我使用ajax表单,每次使用事件ajax成功替换ajax表单的内容时,我必须将事件附加到这些按钮。重新分析表单并将事件附加到取消按钮的完整代码是:
$(document).ajaxSuccess(function (event, xhr, settings) {
var $jQval = $.validator, adapters, data_validation = "unobtrusiveValidation";
$jQval.unobtrusive.parse(document);
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
});
答案 1 :(得分:3)
使用JavaScript劫持按钮单击表单提交。
以下是jQuery的一个很好的例子:
$("#MyButton").click(function(e) {
//submit your form manually here
e.preventDefault();
});
答案 2 :(得分:1)
这真的是对tugberk答案的评论,但评论并没有很好地展示代码示例。
某些浏览器版本不喜欢“preventDefault()”函数。在被这几次咬了之后,我添加了一个简单的实用函数:
//Function to prevent Default Events
function preventDefaultEvents(e)
{
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
你可以用它代替“preventDefault”来代替它:
$("#CancelButton").on("click", function(event) {
preventDefaultEvents(event);
return false;
});
答案 3 :(得分:1)
您可以使用"取消" css课。
例如:<input type="submit" value="Cancel" name="Cancel" class="cancel" />
JQuery.Validate在以下代码中处理其余部分:
// allow suppresing validation by adding a cancel class to the submit button
this.find("input, button").filter(".cancel").click(function() {
validator.cancelSubmit = true;
});