我有一個網頁,其唯一的輸入是一個PO。他們必須輸入採購訂單,並且必須包含字母,數字,短劃線,下劃線和/或句點,並且長度必須在2到15個字符之間。我相信我擁有所有與我繼承的代碼(我是jQuery新手)一起工作。jQuery驗證 - 標準要求但也是一個警告
但是,如果所有這些測試都通過了,我還需要對我們的數據庫進行遠程測試,看看用戶的公司是否已經使用了該PO。如果他們有,我需要警告他們,讓他們選擇輸入不同的值或提交輸入的值。這是我卡住的地方。
$(document).ready(function(){
$.validator.addMethod("noSpecialChars", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9-_.]+$/i.test(value);
}, "Ignored");
jQuery.validator.messages.required = "";
$("#form1").validate({
invalidHandler: function(e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1
? 'PO must contain only letters, numbers, dashed, underscores or periods and must be between 2 and 15 characters long.'
: 'You missed ' + errors + ' fields. They have been highlighted below';
$("div.productError span").html(message);
$("div.productError").show();
} else {
$("div.productError").hide();
}
},
onkeyup: false,
submitHandler: function(form) {
$("div.productError").hide();
form.submit();
},
rules: {
po_number: {
required: true,
noSpecialChars: true,
rangelength:[2,15]
}
},
messages: {
po_number: {
required: 'blah',
noSpecialChars: 'blah',
rangelength: 'blah'
}
},
debug:true
});
});
我明白,我需要做一個遠程規則。我不明白的是,如何獲得驗證來運行執行所需邏輯的第一遍(我上面已經說過),如果通過,然後運行第二個(嵌套?)驗證來執行遠程測試,並且if它失敗(PO#已經存在),彈出一個框,警告它們重試或繼續的能力。問題是有一個子驗證(或其他)。 – 2012-08-09 17:00:46
@ user1588106通知您我的答案已更改。我相信系統不會通知你。 – Kiruse 2012-08-10 01:56:13