Подтвердить что ты не робот

Проверка JQuery-select требуется, если флажок установлен

с помощью 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 на странице теперь работает нормально.

4b9b3361

Ответ 1

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

$(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;
                     }  
                  }  
               }
           }
  });
});  

Ответ 2

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

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

Ответ 3

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

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

Вы можете изменить имя ввода в соответствии с вашими предпочтениями.

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

Ответ 4

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

 return $("#myCheckbox:checked")

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

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

который возвращает true или false.

Возможно, это не имеет ничего общего с вашей проблемой.