我有兩個提交按鈕返回,繼續。當我點擊後退時,我應該如何禁用客戶端驗證。我試圖將cancel class添加到按鈕屬性,但它接縫並沒有幫助。禁用啓用不顯眼驗證的具體提交按鈕
UPD。其實這是工作cancel class。但如果你動態地添加它(通過JavaScript),它會失敗。
我有兩個提交按鈕返回,繼續。當我點擊後退時,我應該如何禁用客戶端驗證。我試圖將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