阅读底部的编辑2
原帖:
我有这个jQuery验证器方法来检查有效的YYYY-MM-DD日期:
$.validator.addMethod("myDate", function(value, element){
var validformat = /^\d\d\d\d\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/;
return validformat.test(value);
}, "Please enter a valid YYYY-MM-DD date");
它在我的计算机上正常工作 - 在预期时返回false,在预期时返回true。但是,在我的Android手机上它总是返回false - 输入总是显示“请输入有效的YYYY-MM-DD日期”,即使日期有效。
任何正则表达式方法(例如.test()
)在Android(以及可能的其他手机)上的工作方式是否有所不同,或者这是一个jQuery Validator错误?
编辑:我尝试将validformat.test(value)
更改为value.match(validformat)
,结果相同 - 适用于计算机,而非手机。
编辑2 :甚至可以在方法中对其他内容进行评论,输入return true;
仍然会在我的手机上产生错误。绝对是一个jQuery验证器问题。需要解决方法!
答案 0 :(得分:1)
我刚刚查看了Android 2.3手机。它运作得很好。
因此,我只将它归咎于Android 2.2。所以这是我的小修复:
$("#myform").validate({
...
<?php
//only print out the rule into the JS if it's not Android 2.2
if(!strpos($_SERVER['HTTP_USER_AGENT'], "Android 2.2"))
print "myDate: true, \n";
?>
烦人的黑客:)