2015-07-30 3 views
0

Я пытаюсь предотвратить форму от проверки, если флажок не установлен с помощью следующего кода:Checkbox форма проверки не работает

<script> 
$(function() { 

    $("#form").submit(function(e) { 
     console.log("test1"); 
     if(!$('input[type="checkbox"]:checked')) { 
      alert("Check the checkbox or you will die."); 
      return false; 
     } 
     console.log("test2"); 
     return true; 
    }); 
}); 
</script> 

Я не знаю, почему моя угроза смерти не появляется. console.log(test1) работает. Также как test2.

Не могли бы вы направить меня немного, чтобы я мог увидеть свою ошибку?

ответ

2

Заменить:

!$('input[type="checkbox"]:checked') 

С:

$("input:checked").length === 0 

Таким образом, вы проверки того, что существует, по крайней мере, один вход проверяется в DOM. Однако я настоятельно рекомендую использовать идентификатор или класс, чтобы сузить область проверки.

+1

он работает, спасибо. также спасибо за комментарий о селекторе класса/id Я обязательно его исповедую. – Zychoo

+0

Нет проблем, рад помочь! :) – taxicala

0

jQuery селекторы возвращают коллекцию, а не true/false. Вам необходимо проверить размер коллекции:

if ($(':checkbox:checked').length = 0) { 
    alert("Check the checkbox or you will diet."); 
    return false; 
}