1
我試圖建立的validval插件(最新4.0.0)版本,並沒有任何運氣...如何手動觸發jquery-mobile表單驗證的validval插件?
這是我在HTML
<form name="LoginForm" id="LoginForm" data-transition="slide" action="somepage.html" method="post">
// ... text inputs
<input type="submit" id="CheckLogin" name="CheckLogin" value="Login" data-theme="e" />
</form>
而且jQuery的 :
// tried pageinit and pageshow
$('div:jqmData(role="page")').live('pageshow', function() {
$(this).find('form').each(function() {
// call once
if ($(this).find('.required').length > 0 && $(this).attr('valed') != 'on') {
// flag and validVal
$(this).attr('valed', 'on').validVal({
'validate': { 'onBlur': false },
'customValidations': { },
'form': {
'onValid': function($form, language) {
console.log("form ok");
},
'onInvalid': function($form, language) {
console.log("form not ok");
// attach an error to form
$(this).attr('error', 'yes');
}
}
});
}
});
這應該在pageshow上設置表單驗證。
現在我結合提交按鈕:
$("#CheckLogin").click(function(event) {
event.preventDefault();
// call validval
// DOES NOT WORK, cause validval() doesn't fire like this
var errors = $("#CheckLogin").triggerHandler("submitForm.vv");
console.log(errors);
// alternative, check for attached errors
// DOES NOT WORK, cause validval() doesn't fire on click
// ... my routine running if there are no errors
// Submit
// document.LoginForm.submit()
});
的問題是,如果我綁定提交,驗證工作,但形式總是被提交向右走,不管是什麼validval說。所以我現在綁定點擊,並想「手工」開火我的例程。這意味着我還需要使用觸發器來觸發validval--至少它在website上這麼做。問題是,validval不會像這樣開火。我不知道爲什麼?
問題:
我怎樣才能觸發validVal()形式驗證從我的點擊處理程序內?或者,如果我改回綁定提交,我怎樣才能確保表單不會自動提交遺忘?
希望信息充足&大感謝您的幫助!
謝謝,我剛纔遇到了一個障礙,但在我感到沮喪之前,你爲我節省了很多時間:) – JoshGough 2012-12-15 19:30:35