6

2 つのフィールドを持つフォームがあります。携帯番号 と電話番号。

少なくとも 1 つのフィールドに入力する必要がありますが、両方に入力することもできます。

いずれも満たされていない場合にのみエラーをスローするには、jquery validate が必要です。

私はこれを達成しました:

rules: {
            mobile:{
                required: {
                    depends: function(element) {
                        return $("#regTelephone").val() === '';
                    }
                }
            },
            telephone:{
                required: {
                    depends: function(element) {
                        return $("#regMobile").val() === '';
                    }
                }
            }
}  

ただし、空のフィールドが 1 つだけの場合でも、このフィールドは「有効な」クラスを取得します。これは、有効な css に緑色の境界線があるため、望ましくありません (したがって、空のフィールドには緑色の境界線が表示されます)。

そう:有効なクラスを取得せず、したがって緑色の境界線を取得しないために、空のフィールドを取得するにはどうすればよいですか?

4

2 に答える 2

14

オプションのadditional-methods.jsfileを使用するとrequire_from_group、要求したことを正確に実行するメソッドが呼び出されます。(過去のバグを回避するには、少なくともバージョン 1.11.1 のプラグインを使用する必要があります。)

rules: {
    mobile:{
        require_from_group: [1, '.mygroup']
    },
    telephone:{
        require_from_group: [1, '.mygroup']
    }
},
....

1パラメータは、グループからの必要数です。HTML マークアップでは、グループ内のフィールドに、2 番目のパラメーターで指定されたclass一致するが含まれている必要があります。class

<input type="text" class="mygroup" name="mobile" />
<input type="text" class="mygroup" name="telephone" />

動作デモ: http://jsfiddle.net/NfcxX/

私のデモgroupsでは、複数のエラー メッセージを 1 つにまとめるオプションも示しています。

于 2013-08-19T15:36:29.997 に答える
-1
<input type="text" name="mobile" id="regMobile">
<input type="text" name="telephone" id="regTelephone">

rules: {
            mobile:{
                required: {
                    depends: function(element) {
                        return $("#regTelephone").val() == ''
                    }
                }
            },
            telephone:{
                required: {
                    depends: function(element) {
                        return $("#regMobile").val() == ''
                    }
                }
            }
}  
于 2014-01-22T12:01:02.593 に答える