禁用启用不显眼验证的具体提交按钮

问题描述:

我有两个提交按钮返回,继续。当我点击后退时,我应该如何禁用客户端验证。我试图将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 = "*" 
    }); 
}); 
+0

谢谢。生成内容时,我通过向我的按钮添加“取消”类来解决此问题。我对你有疑问这个选择器意味着什么“.jsCancel”?你试过用这个$(“。jsCancel”)。live(“click”,...而不是这个$(“。jsCancel”)。click(function(e)... – Sergii

+0

添加取消类没有为我而工作,因此我的解决方法是,我们通常在css类的前面添加js,如果它们用于查找元素而不是样式,我将该类放在我的提交按钮上,不应该验证表单。 )或on()也可以工作,我只是不习惯使用它。 – Skymt

这是真正由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; 
});