0

テキスト フィールドの要件が無線フィールドの値に依存するフォームがあります。検証は、適切な無線オプションがチェックされている最初の時点で正常に機能します。ただし、ラジオの値を変更すると、ラジオの有効なオプションがチェックされていても、テキスト フィールドにエラー メッセージが表示されたままになります。有効なときにエラーを削除するにはどうすればよいですか?

これが私の検証コードです:

$().ready(function() {
    $("#myform").validate({
        rules: {
            ff_24: "required",
            ff_25: "required",
            ff_26: {
                required: {
                    depends: function(element) {
                        return ($('input[name="ff_25"]:checked').val() == 'Yes');
                    }
                }
            },
            ff_28: "required",
            ff_30: "required"
        },
        messages: {
            ff_24: "This field is required",
            ff_25: "This field is required",
            ff_26: "This field is required",
            ff_28: "This field is required",
            ff_30: "This field is required"
        },

        errorPlacement: function(error, element) {
            var container = $('<div />');
            container.addClass('tooltip'); // add a class to the wrapper
            if (element.attr('type') === 'radio') {
                error.appendTo(element.parent());
            }
            else if (element.attr('type') === 'checkbox') {
                error.insertAfter(element.next());
            }
            else {                    
                error.insertAfter(element);
            }
            error.wrap(container);
            $("<div class='errorImage'></div>").insertAfter(error);
        },
        success: function(element) {
            $(element).addClass("checked");
            return false;
        }
    });
});
4

1 に答える 1

4

dependsドキュメントで言及されていなくても、多少非推奨になっていると確信しています。
次のように変更する必要があります。

required: function(element) {
    return ($('input[name="ff_25"]:checked').val() == 'Yes');
}

また、追加してみてくださいonclick: true, onfocusout: true

onfocusout: ぼかしの要素 (チェックボックス/ラジオ ボタンを除く) を検証します。
onclick: クリック時にチェックボックスとラジオ ボタンを検証します。

http://docs.jquery.com/Plugins/Validation/validate#options (残念ながら直接リンクはできません。オプションをクリックして下にスクロールしてください)

于 2012-05-31T20:36:44.733 に答える