入力のみが PO である Web ページがあります。彼らは PO を入力する必要があり、文字、数字、ダッシュ、アンダースコア、および/またはピリオドを含み、長さが 2 ~ 15 文字である必要があります。継承したコードですべてが機能していると思います(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
});
});