我有一个网页,其唯一的输入是一个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