0

フォームでバリデータプラグインを使用しています。私は3セットのラジオボタンと1セットのチェックボックスを持っています。エラーが発生した場合、エラークラスを特定のエラー要素の隣に配置するように、ラジオとチェックボックスにエラー配置を使用しています。

        errorElement: "div",
        wrapper: "div",  // a wrapper around the error message
        errorPlacement: function(error, element) {
            if(element.is(":radio")){
                error.insertAfter('ul.radio');
                error.addClass('error_class');
            }else if(element.is(":checkbox")){
                error.insertAfter('ul.checkbox');
                error.addClass('error_class');
            } else{
                error.insertAfter(element);
                error.addClass('error_class');
            }
        },

単一のチェックボックスとラジオ グループがある場合は問題なく動作しますが、ラジオ グループが 3 つある場合、クラス ラジオを持つ各ラジオ グループの横に 3 つのエラー セットが生成されます。このような...

私の次のCSSはこんな感じです...

<div class="sgnup-cnt-inpt1">
                    <h3>Type of Classes *</h3>
                    <ul class="lst1 radio">
                        <li>
                            <span><input type="radio" class="required error" value="Academic" id="type_of_class_a" name="type_of_class"></span>
                            <label>Academic</label>
                        </li><li>
                            <span><input type="radio" class="required error" value="Non-Academic" id="type_of_class_n" name="type_of_class"></span>
                            <label> Non-academic</label>
                        </li>
                    </ul>
<div><div htmlfor="teaching_exp" generated="true" class="error" style="display: block;">Required.</div></div>
<div><div htmlfor="type_of_class" generated="true" class="error" style="display: block;">Required.</div></div>
<div><div htmlfor="gender" generated="true" class="error" style="display: block;">Required.</div></div><div style="display: none;"><div htmlfor="type_of_class_insti" generated="true" class="error" style="display: none;">Required.</div></div>
                    <div id="radio"></div>
                </div>

if else は、いずれの場合もラジオのエラー配置には使用したくありません。のためにグローバルに使用したい:radio。名前や他の属性と比較したくありません。

4

1 に答える 1

1

対応するクラスだけでなく、指定されたクラスのすべてulの要素の後に発生したエラーを挿入しています。試す:

errorPlacement: function(error, element) {
    if(element.is(":radio")){
        error.insertAfter(element.closest('ul.radio'));
        error.addClass('error_class');
    } else if(element.is(":checkbox")){
        error.insertAfter(element.closest('ul.checkbox'));
        error.addClass('error_class');
    } else {
        error.insertAfter(element);
        error.addClass('error_class');
    }
},

ulしたがって、エラーはエラー要素に関連するものにのみ追加されます。

于 2013-02-25T10:27:41.127 に答える