在“邮政编码”的html输入上我已经通过以下方式附加了jQuery.autocomplete()和mask():
<input type="text" name="PostCode" id="PostCode" size="10" value="<% = vPostCode %>">
<script type="text/javascript">
$(function() {
$("#PostCode").mask("999 99");
$("#PostCode").autocomplete({
source: function( request, response ) {
$.ajax({
url: "./ajax.asp"
, dataType: "jsonp"
, data: {
ajax: "1",
action: "getPC",
maxRows: 10,
contains: request.term
}
, success: function( data ) {
response( $.map( data.PC, function( item ) {
return {
label: item.pCode + ' : ' + item.City + ' : ' + item.Region
, value: item.pCode
}
}));
}
, contentType: "application/x-www-form-urlencoded;charset=1253"
});
}
, select: function( event, ui ) {
$("#PostCode").val(ui.item.zip);
}
, minLength: 2
, selectFirst: true
, delay: 200
});
});
</script>
当光标进入空输入id =“PostCode”时出现问题,它填充了"___ __"
(3个下划线,空格和2个下划线),这是正常的,因为mask()。
但由于minLength:2
我怎么能告诉minLength部分忽略"___ __"
序列,因为只有数值有效,或者换句话说 - 如果用户输入数值时如何触发自动完成(),如果没有则忽略进入了?
我正在使用jQuery 1.71和jquery.maskedinput 1.2.2
谢谢
答案 0 :(得分:0)
尝试将$(request.term).replace(“_”,“”)替换为实际文本
答案 1 :(得分:0)
我在jQuery validation plugin: accept only US, Canada and Mexic zip code?
找到了类似的问题正则表达式看起来就像它拥有你需要的一切。 (2分钟,数字,面具等)
jQuery.validator.addMethod("zipcodeUS", function(value, element) {
return this.optional(element) || /\d{5}-\d{4}$|^\d{5}$/.test(value);
}, "The specified US ZIP Code is invalid");
这个有一个可用的范围。
jQuery.validator.addMethod("ziprange", function(value, element) {
return this.optional(element) || /^90[2-5]\d\{2\}-\d{4}$/.test(value);
}, "Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");
然后您可以将这些规则与validate()方法一起使用,并调用自动完成。