2015-07-31 3 views
1

У меня возникли проблемы с пониманием того, почему мой флажок не производит никаких действий. Я был бы признателен за любое предложение о том, где произошла моя ошибка.jQuery action on HTML Checkbox

<!DOCTYPE html> 
 

 
<head> 
 
</head> 
 

 
<body> 
 
<form> 
 
\t <div id = "canada1"> <input type ="checkbox" name ="location" value ="canada"> Canada <br><div> 
 
    <div id = "central_america1"> <input type ="checkbox" name ="location" value ="central_america"> Central America <br></div> 
 
</form> 
 

 
<script type = "text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script> 
 

 
<script type = "text/javascript"> 
 

 
\t $(document).ready(function(){ 
 
\t \t alert("this appears") 
 

 
\t \t $('#canada1').click(function() { 
 

 
\t \t \t if ($('#canada1').is(':checked')) { 
 
\t \t \t \t alert("Canada is checked"); 
 
\t \t \t \t console.log("is this working?") 
 
\t \t \t }; 
 

 
\t \t }); 
 
\t }); 
 
</script> 
 
</body> 
 
</html>

+0

'если ($ ('# canada1') есть (. ': Проверено'))' Как можно проверил DIV? – j08691

ответ

1

потому, что вы приложите событие на div, а не сам флажок, то :checked не применяется к нему. См. Код ниже и фрагмент кода проверки.

<!DOCTYPE html> 
 

 
<head> 
 
</head> 
 

 
<body> 
 
    <form> 
 
    <div id="canada1"> 
 
     <input type="checkbox" name="location" value="canada">Canada 
 
     <br> 
 
     <div> 
 
     <div id="central_america1"> 
 
      <input type="checkbox" name="location" value="central_america">Central America 
 
      <br> 
 
     </div> 
 
    </form> 
 

 
    <script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script> 
 

 
    <script type="text/javascript"> 
 
    $(document).ready(function() { 
 
     alert("this appears") 
 

 
     $('input[type="checkbox"]').click(function() { 
 

 
     if ($(this).is(':checked')) { 
 
      var myVal = $(this).val(); 
 
      alert(myVal + " is checked"); 
 
      console.log("is this working?") 
 
     }; 
 

 
     }); 
 
    }); 
 
    </script> 
 
</body> 
 

 
</html>

+0

Большое спасибо за объяснение! Я действительно новичок в jQuery, и ваша помощь очень ценится! –

+0

Рад это услышать и приветствую! –

0

DIV элемент не содержит свойство как 'проверено', это свойство флажком. if ($('#canada1').is(':checked'))

Итак, в вашем случае, если вы передадите id = 'canada1' на флажок и удалите id из div, тогда ваш код будет работать.

<!DOCTYPE html> 
 

 
<head> 
 
</head> 
 
<body> 
 
    <form> 
 
    <div id="canada1Div"> 
 
     <input id="canada1" type="checkbox" name="location" value="canada">Canada 
 
     <br> 
 
     <div> 
 
     <div id="central_america1Div"> 
 
      <input id="central_america1" type="checkbox" name="location" value="central_america">Central America 
 
      <br> 
 
     </div> 
 
    </form> 
 

 
    <script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script> 
 

 
    <script type="text/javascript"> 
 
    $(document).ready(function(){ 
 
\t \t alert("this appears") 
 
\t \t $('#canada1').click(function() { 
 
\t \t \t if ($('#canada1').is(':checked')) { 
 
\t \t \t \t alert("Canada is checked"); 
 
\t \t \t \t console.log("is this working?") 
 
\t \t \t }; 
 

 
\t \t }); 
 
\t }); 
 
    </script> 
 
</body> 
 
</html>

+0

Спасибо! Это было действительно полезно! :) –

+0

Добро пожаловать! вы можете отметить ответ :) –