2013-08-19 14 views
6

私は2つのフィールドを持つフォームを持っています。モバイル番号。電話番号。jQueryプラグインを検証すると、2つのフィールドのうちの1つが必要です

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

jquery validateが必要です。いずれも入力されていない場合は、エラーをスローする必要があります。

私はこれを達成している1つだけのフィールドが空の場合、このフィールドはまだ私の、有効なCSSは緑色の枠を持っているように私はしたくない「有効」クラスを、取得、

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

しかし、 (空のフィールドはまだ緑色の枠線を取得します)

so:空のフィールドを取得して(他のフィールドに値を与えても)、有効なクラスを取得しないようにします。

+0

'.val'が –

+1

@Zeaklous nullの場合、FYI、プラグインはすでに' require_from_group'と呼ばれるこのような状況のためのルール/メソッドを持つ有効なクラスを削除するために検証された後は、if文を入れることができます。 – Sparky

答えて

13

the optional additional-methods.js fileを使用して、require_from_groupと呼ばれる方法があります。 (あなたは過去のバグを回避するためには、プラグインの少なくともバージョン1.11.1を使用する必要があります。)

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

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

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

ワーキングDEMOhttp://jsfiddle.net/NfcxX/

私のデモは、1つに複数のエラーメッセージを組み合わせたgroupsオプションを示しています。

+0

これに問題が発生しました。他のフィールドの検証を妨げるようです。私は最初の 'title'フィールドを追加し、検証は無視されます:http://jsfiddle.net/NfcxX/19/ – Andy

+1

@Andy、最新のベータ版で修正されているこのバグについてGitHubで話がありますリリースされました。 – Sparky

-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() == '' 
        } 
       } 
      } 
} 
+0

これが単純ならば、 'require_from_group'メソッドは必要ありません。 – Sparky