1

一番下のEDIT 2を読んでください
元の投稿:

有効な YYYY-MM-DD 日付を確認するためのこの jQuery バリデータ メソッドがあります。

$.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 日付を入力してください」と表示されます。

Android (およびおそらく他の電話) で動作が異なるような正規表現メソッド.test()はありますか? それとも、これは jQuery Validator のバグですか?


編集:同じ結果でに変更しようとしvalidformat.test(value)ましvalue.match(validformat)た-電話ではなくコンピューターで動作します。


EDIT 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 に答える