[英]How to store the variable returned from a closure function?
注意submitHandler
的代碼已在多個地方使用,並試圖對其進行重構。
var validator = $("#form_id").validate({
errorClass: "ui-state-error",
submitHandler: function(form) {
jQuery(form).ajaxSubmit({
dataType: 'json',
success: function(entity) {
//dostuff
},
error: function(errors) {
validator.showErrors(errors);
}
});
}
});
我使用了上面的代碼,並將submithandler提取為類似的功能;
$("#generated_form_id").validate({
errorClass: "ui-state-error",
submitHandler: bindSubmitHandler(formId)
}
});
function bindSubmitHandler(formId){
return function(form) {
jQuery(form).ajaxSubmit({
dataType: 'json',
success: function(object) {
//do stuff
});
},
error: function(errors) {
validator.showErrors(errors); //throws an exception
}
});
}
}
此代碼引發異常,因為驗證器對象未定義。
我自己可能是錯誤的推理如下:我無法存儲變量,因為表單是動態創建的。 一頁可以使用相同的bindSubmitHandler
函數創建十個這樣的表單。 我考慮過通過表單獲取驗證器的解決方案,但在驗證器API中找不到任何此類方法。 如果有這種方法,我可以編寫類似$('#formid').getValidator().showErrors(errors);
有誰有解決這個問題的想法?
validate()
返回一個驗證器。
使用.data()
將驗證器附加到表單,將其檢索為bindSubmitHandler
。
但是,您是否也不想傳遞success
以及可能的error
處理程序?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.