2016-08-10 5 views
2

入手方法チェックボックス名がindexの配列である場合、1つのカスタムjquery検証メッセージと、それ以上の要素の<div>にあるもののみを取得します。Jquery Validationインデックス付きチェックボックス

<div class="error">Error will show here</div> 
<input type="checkbox" value="0" name="is_appraisal[0]" class="is_appraisal_f siblingcheckbox" id="is_appraisal_f"> 

<input type="checkbox" value="0" name="is_appraisal[1]" class="is_appraisal_s siblingcheckbox" id="is_appraisal_s"> 

私はこれを試してみましたが、それは検証が動作しているが、これは、両方checkbox.Anyヘルプ以下のエラーメッセージを表示します?

$.validator.addMethod("onechecked", function (value, elem, param) { 
      if ($(".siblingcheckbox:checkbox:checked").length > 0) { 
       return true; 
      } else { 
       return false; 
      } 
     }, "Please select any one of the following!"); 

     $.validator.addClassRules("siblingcheckbox", { 
      onechecked: true 
    }); 

が動作していませんか

<label id="email_id-error" class="error" for="email_id">Please enter your Email.</label> 

ただ、HTMLのDOMからこのラベルをコピーし、そのエラーメッセージを削除するとエラーメッセージが表示したい場所にそれを置く:

答えて

1

jQueryの検証ライブラリは次のように各無効なHTML要素のラベルを生成します。エラーメッセージの配置は、このラベルの場所です。

2

すべてのjQuery検証エラーメッセージを使用する場所に表示する場合は、 http://docs.jquery.com/Plugins/Validation/validate#toptionsそのページでerrorPlacementオプションを見つけます。あなたはすべてのエラーのためにカスタムの配置をしたい場合

1) あなたはこれを行うことができます。

$("#myform").validate({ 
    errorPlacement: function(error, element) { 
    error.appendTo('#errordiv'); 
    } 
}); 

2) あなたはこれを行うことができる1つのまたは複数のエラー・ラベルの特定の場所を指定したい場合。

errorPlacement: function(error, element) { 
    if (element.attr("name") == "email") 
     error.insertAfter(".some-class"); 
    else if (element.attr("name") == "phone") 
     error.insertAfter(".some-other-class"); 
    else 
     error.insertAfter(element); 
} 

編集

この怒鳴るコードは([1] is_appraisal [0]、is_appraisal)ので、メッセージが表示されますチェックボックスの名前が異なっている::あなたの検証機能で

$("#YOURFORMID").validate({ 
      errorPlacement: function(error, element) { 
       error.appendTo('.error'); 
      }, 
      success: function(label,element) { 
       $('.error').html(''); 
      } 

}); 

NOTEを追加します2回。

はまた、あなたが与えてくださいすることができますカスタム場所

​​
.error 
{ 
    color:red; 
    } 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
<div class="error"></div> 
<form name="myform" id="myform" action="" method="post"> 
     <input type="checkbox" value="0" name="is_appraisal[]" class="is_appraisal_f siblingcheckbox" id="is_appraisal_f"> 
     <input type="checkbox" value="0" name="is_appraisal[]" class="is_appraisal_s siblingcheckbox" id="is_appraisal_s"> 
     <input type="submit" > 
    </form> 

デモリンクhttps://jsfiddle.net/9q0jwxo6/1/

+0

に設定されたカスタムメッセージを持つチェックボックス 検証のグループのために怒鳴るスニペット作業のデモをチェック質問に関連する例。 –

+0

@ShakunChaudharyはansを編集します –

+0

エラーは選択後に消えています。 –