1

正規表現を管理するために、次のカスタム メソッドを作成しました。

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
    "Text not valid"

);

そして、私は私の方法を使用しました:

$(function() {
  $("#registerform").validate({
    rules: { password: {required: true, regex: "^[a-zA-Z09]+$"} },
    messages: {
    password: {regex: "A password can contain only letters or digits"}
    }
  });
});

問題は、validate() の呼び出し内で標準の検証メソッド (必須など) のデフォルト メッセージを上書きできますが、カスタム メソッドでは上書きできないことです。そのため、私のページには「パスワードには文字または数字のみを含めることができます」ではなく「テキストは無効です」と表示されます。デフォルトのメッセージを提供し、それを上書きできるようにするにはどうすればよいですか??

4

1 に答える 1

1

オプション内で常にカスタム メッセージを設定する場合は、カスタム メソッドからメッセージを除外し.validate()ます。

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    }
);

デフォルトのメッセージを提供し、それを上書きできるようにするにはどうすればよいですか?

これが可能だとは思いません。結局のところ、すでに独自のカスタム メソッドを使用しているのに、なぜそれをオーバーライドしたいのだろうかと考えるのは合理的です。

唯一のオプションは、カスタム メソッド内でメッセージを使用するか、.validate()オプション内でメッセージを設定することですが、両方ではありません。

于 2012-11-27T01:54:21.053 に答える