过滤器本身非常简单:
$.expr[':'].valid = function(a) {
var phone = a.value.replace(/\D/g,''),
phonesub = phone.substr(0, 2);
return (phonesub == '79' || phonesub == '89') && phone.length == 11
}
我只想检查phone
长度是否为 11 并且它以79
or开头89
。然而:
$(":valid")
[<input type="text" id="phone1" name="phone1" value>]
很明显 value 是 ""。
为什么我的过滤器不起作用?
顺便说一句,与此同时,DOM 上还有另一个输入:
<input type="text" id="phone2" name="phone2" value="" disabled="">
并且它没有被过滤器匹配。是否受到影响disabled
?
让我们改变它的价值:
$("#phone2")
[<input type="text" id="phone2" name="phone2" value disabled>]
$("#phone2").val("79111111111")
[<input type="text" id="phone2" name="phone2" value disabled>]
$("#phone2").val()
"79111111111"
$(":valid")
[<input type="text" id="phone1" name="phone1" value>]
我很绝望