4

ドロップダウン フィールドで JQuery リモート検証を使用して、選択したフィールドが既に存在するかどうかを確認しています。全体的なコードは正常に機能しており、適切に検証されています。しかし、問題は onChange イベントの後に ajax 呼び出しを送信するリモート検証です。つまり、ページ上の任意の場所をクリックした後に一意のキー検証エラーが表示されます。

ユーザーがドロップダウンオプションをクリックしたら、それを検証したいと思います。試しonclick:trueましたが、うまくいきません。私のコードを確認してください:

$("#myform").validate({
  //   onclick:true,
  //   onkeyup:true,
  rules: {
    "customer[customer_personal_details_id]": {
        required: true,
        remote: {
            url: "/validation/check",
            type: "post",
            data: {
                columnVal: function () {
                    return $("#customer_customer_personal_details_id").val();
                }
            }
        }
    }
  },
  messages: {
    "customer[customer_personal_details_id]": {
         required: "Please Select Account Holder", 
        remote: "One active account already exists. Duplicate accounts are not allowed."}
  }
});

ありがとう。どんな助けでも大歓迎です。

4

3 に答える 3

2

<SELECT ID="DROPDOWN_ID"> があると仮定して、これを試してください。

$('#DROPDOWN_ID').on('click', function() { 
    $("#myform").validate();
});
于 2014-07-04T18:46:01.890 に答える
1

「JQuery Remote Validation」は使用しませんが、次のコードが役立つ場合があります。

JavaScript コード:

window . onload = function ()
{
    "use strict";
    document . querySelector ( "form#myform > select" ) . selectedIndex = -1;
}

function test ()
{
    "use strict";
    if ( typeof customOption === "undefined" ) { alert ( "FATAL SYSTEM ERROR !" ); return; }
    alert ( "Valid option selected ! Congratulations !\nYour selected value is: \"" + customOption + "\"" );
}

および HTML5 コード:

<select onchange="customOption = this . options [ this . selectedIndex ] . value;">
<!-- ( ... ) -->
</select>

これは単なるデモンストレーションです。関数を呼び出すことができるので、HTML5コードを変更して「ユーザーがドロップダウンオプションをクリックしたら検証する」ことができます(選択要素onchange属性)。

作業フィドル: JSFiddle

于 2014-07-01T14:57:23.213 に答える