1

阅读底部的 EDIT 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 验证器问题。虽然需要解决方法!

4

1 回答 1

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";
    ?>

烦人的黑客:)

于 2013-01-05T01:56:06.123 回答