web-dev-qa-db-ja.com

チェックボックスがオンの場合、JQueryの検証選択が必要

特定のチェックボックスがチェックされている場合、jqueryを使用して、必要な選択ボックスから選択を行います(つまり、空のデフォルトのままにすることはできません)。私のコード:

$(document).ready(function(){
  $("#myForm").validate({
    rules: {
      myDropDown: {
        required: {       
          depends: function(element) {
            return $("#myCheckbox:checked")
          }
        }
      }
    }
  })
})

Html:

<input type="checkbox" name="myCheckbox" id="myCheckbox" value="1">
<select name="myDropDown" id="myDropDown">
  <option value="" selected></option>
  <option value="1">Choice 1</option>
  <option value="2">Choice 2</option>
  <option value="3">Choice 3</option>
</select>

コードが機能しないだけでなく、javascriptの次のセクションにあるjqueryタブがスローされます。

アドバイスをお願いします。

編集:すべてのブラケットを整理したので、チェックボックスがチェックされているかどうかに関係なく、選択ボックスが必須フィールドになります。つまり、dependsパーツが機能しません。ページ上の他のjavascriptは正常に動作しています。

30
Howard Shaw

このようにしてみてください

$(document).ready(function(){
  $("#myForm").validate({
    rules: {
               myDropDown:{
                  required: function (element) {
                     if($("#myCheckbox").is(':checked')){
                         var e = document.getElementById("myDropDown");
                         return e.options[e.selectedIndex].value=="" ;                            
                     }
                     else
                     {
                         return false;
                     }  
                  }  
               }
           }
  });
});  
28
Mahesh KP

次のように機能するはずです。

rules : {
 myDropDown:{required:"#myCheckbox:checked"}
}
37
elle

これは魅力のように機能します

inputname:
{
    required: function(){
        if($("select[name=inputname]").val() == 1){
            return true;
        }
        else
        {
            return false;
        }
    }
}

必要に応じて入力名を編集できます。

入力フィールドに変更するには、選択する部分を入力に変更できます

8
Koen den Braven

使用しているプラ​​グインはわかりませんが、

 return $("#myCheckbox:checked")

チェックボックスがチェックされている場合、Jqueryオブジェクトを返します。私はそれを行う方が正しいと思います:

 return $("#myCheckbox").is(':checked')

trueまたはfalseを返します。

たぶんこれはあなたの問題とは何の関係もない

0