禁用启用不显眼验证的具体提交按钮
问题描述:
我有两个提交按钮返回,继续。当我点击后退时,我应该如何禁用客户端验证。我试图将cancel class添加到按钮属性,但它接缝并没有帮助。禁用启用不显眼验证的具体提交按钮
UPD。其实这是工作cancel class。但如果你动态地添加它(通过JavaScript),它会失败。
答
劫持按钮点击表单提交使用JavaScript。
这里是很好的例子与jQuery:
$("#MyButton").click(function(e) {
//submit your form manually here
e.preventDefault();
});
答
我连接事件处理程序以某些按钮,即改变该特定表格上的验证器对象的设置。
$(".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 = "*"
});
});
答
这是真正由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;
});
答
您可以使用“取消” 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;
});
谢谢。生成内容时,我通过向我的按钮添加“取消”类来解决此问题。我对你有疑问这个选择器意味着什么“.jsCancel”?你试过用这个$(“。jsCancel”)。live(“click”,...而不是这个$(“。jsCancel”)。click(function(e)... – Sergii
添加取消类没有为我而工作,因此我的解决方法是,我们通常在css类的前面添加js,如果它们用于查找元素而不是样式,我将该类放在我的提交按钮上,不应该验证表单。 )或on()也可以工作,我只是不习惯使用它。 – Skymt