JQuery проверки-выбора требуется, если флажок установлен - PullRequest
30 голосов
/ 04 июля 2011

используя 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>

Мало того, что код не работает, он выбрасывает вкладки jquery, которые у меня есть в качестве следующего раздела javascript.

Любой совет приветствуется.

Редактировать: Теперь, когда я разобрал все свои скобки, теперь поведение состоит в том, что он делает поле выбора обязательным полем независимо от того, установлен флажок или нет - то есть зависимая частьне работает.Другой javascript на странице теперь работает нормально.

Ответы [ 4 ]

36 голосов
/ 06 марта 2014

он должен работать так:

rules : {
 myDropDown:{required:"#myCheckbox:checked"}
}
28 голосов
/ 05 июля 2011

Пожалуйста, попробуйте вот так

$(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;
                     }  
                  }  
               }
           }
  });
});  
8 голосов
/ 07 октября 2011

Это работает как шарм

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

Вы можете отредактировать имя входа по своему усмотрению.

Чтобы изменить его на поле ввода, вы можете изменить выбранную часть на вход

0 голосов
/ 04 июля 2011

Я не знаю, какой плагин вы используете, но

 return $("#myCheckbox:checked")

возвращает объект Jquery, если установлен ваш флажок.Я думаю, что было бы более правильно сделать:

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

, который возвращает истину или ложь.

Может быть, это не имеет ничего общего с вашей проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...