0

選択ボックスが 2 つあるフォームがあります。1 つ目は、msdropdown を使用してスタイル設定されています。jquery 検証 (必須) を使用してフォームを検証しています。フォームを送信すると、2 つの選択ボックスが検証され、エラー メッセージが表示されます。それはいいです。

しかし、私の問題は、選択ボックスのオプションを変更したときに、通常の選択ボックスの検証メッセージがクリアされることです。しかし、msdropdown 選択ボックスはクリアされません。メッセージを消去するには、送信ボタンをもう一度クリックする必要があります。選択ボックスのオプションを変更したときにそれを検証するにはどうすればよいですか?

これは私の検証ルール ブロックです。

$(document).ready(function(e) {     
    $("body #webmenu").msDropDown();
    $("#frmTest").validate({
        rules: {
            normal: {
                required: true
            },
            webmenu: {
                required: true
            }
        }
    });
});    

シナリオにフィドルを作成しました。ぜひご覧ください。

http://jsfiddle.net/LHF3G/

4

2 に答える 2

2

プラグインの.valid()メソッドを使用して、mouseupイベント時に要素の検証テストをトリガーします。ブラウザーの DOM インスペクターを使用してターゲットを見つけました... <li>with class _msddli_

$('._msddli_').on('mouseup', function() { // target the custom line item on mouseup
    $('#webmenu').valid(); // validation test triggered on target element
});

動作デモ: http://jsfiddle.net/LHF3G/1/


編集

上記と同じように動作する別のバージョン:

$('#webmenu').on('change', function() {  // target the original select on change
    $(this).valid();  // validation test triggered on target element 
});

デモ: http://jsfiddle.net/LHF3G/3/

jQuery セレクターと JavaScript イベントを微調整して、考えられるあらゆる状況に適合させることができます。ただし、ここで最も重要な側面は、.valid()メソッドが検証テストをトリガーするメカニズムであり、必要に応じてエラー メッセージを切り替えることです。

于 2013-12-28T19:56:00.750 に答える