0

サーバーにフォームを送信する前に、 jQuery-Validation-Engineを使用してクライアント側のチェックを行っています。

一致させたいフィールドのIDがvalidate[equals[fieldId]]どこにあるかを使用して、2つのフィールドが一致することを確認できることを知っています。fieldIdたとえば、パスワードが一致していることを確認したい場合に便利です。

今、私はフィールドが一致しないことを確認する方法を見つけようとしています。たとえば、パスワードフィールドがユーザー名フィールドと一致しないことを確認したい場合です。

誰かがこれを機能させることができましたか?他のアイデアはありますか?

ありがとう。

4

2 に答える 2

2

いくつかの調査と試行錯誤の末、私は自分の質問に答えました。私がここで行ったことを投稿して、同じことをする必要がある他の人が参照できるようにします。

カスタム正規表現を追加するのとほぼ同じ方法で、新しいカスタム関数を作成する必要があることがわかりました。カスタム正規表現を適用する方法はかなりよく文書化されていますが、(サードパーティ関数を呼び出さずに)カスタム関数を実装する方法についてはあまり説明されていません。

言語ファイルを掘り下げると、それを処理する方法がわかります。

言語ファイル(この場合はjquery.validationEngine-en.js)内に関数が添付されたカスタムバリデーターを作成する必要がありました。

"notEqual":  {
    "func": function(field, rules, i, options){
        return (field.val() == $('#username').val()) ? false : true;
    },
    "alertText": "* Username and password must be different"
},

私のhtmlマークアップでは、次のように使用します。

<input type="hidden" name="username" value="yourPassword" id="username"/>
<input class="validate[custom[notEqual]]" type="password" name="confirmPassword" value=""/>

それが誰かを助けることを願っています。

于 2013-02-22T17:30:38.797 に答える
0

助けてくれてありがとう。funcCallを使用してこれを行うこともできます。

あなたの場合、HTMLは次のとおりです。

<input class="validate[funcCall[notEqual]]" type="password" name="confirmPassword" value="">

関数は次のとおりです。

function notEqual(field){
    if(field.val() == $('#username').val()){
        return "* Username and password must be different";
    }
}

これは、他のライブラリやコードの他の領域から再利用できる検証関数がある場合に役立つことがあります。

http://posabsolute.github.io/jQuery-Validation-Engine/#validators/funccall-methodname

于 2013-10-09T16:24:15.767 に答える