2012-02-17 2 views
1

Я пытаюсь проверить, установлен ли флажок или нет, но я получаю только предупреждение, когда страница загружается, а не в любое время, когда статус изменился ,JQuery Проверьте, установлен ли флажок check only working onload

Вот код:

<script type="text/javascript"> 
    $(function(){ 

     if ($('#myCheckBox').is(':checked')) { 
      alert('Yes my checkbox is checked'); 
    } else { 
      alert('No my checkbox is not checked'); 

    }; 

}); 

+0

возможно дубликат [Как я могу проверить, если флажок с JQuery?] (Http://stackoverflow.com/questions/2204867/how-do-i-check-if-a-checkbox- is-checked-with-jquery) и [Запуск действия jquery, когда пользователи отмечают флажок] (http://stackoverflow.com/questions/4771050/triggering-a-jquery-action-when-the-users-mark- а-флажок) –

ответ

5

Вы должны связать «изменить» событие флажком:

$('#myCheckBox').change(function() { 

    if (this.checked) { //if ($(this).is(':checked')) { 
      alert('Yes my checkbox is checked'); 
    } else { 
      alert('No my checkbox is not checked'); 
    }; 
}) 

Когда галочка будет нажата, обработчик будет выполнен.

Далее Радинг:

0

$(someFunction) является JQuery стенография для "Запустить эту функцию, когда DOM готова".

Если вы хотите, чтобы работать, когда флажок взаимодействовали с, вам необходимо bind обработчик события (например, click)

0
$('#myCheckBox').click(function() { 
    if ($('#myCheckBox').is(':checked')) { 
      alert('Yes my checkbox is checked'); 
    } else { 
      alert('No my checkbox is not checked'); 

    }; 
} 
1

попробовать:

$('#myCheckBox').change(function(){ 

     if ($('#myCheckBox').is(':checked')) { 
      alert('Yes my checkbox is checked'); 
    } else { 
      alert('No my checkbox is not checked'); 

    }; 

}); 

это будет вызывать у вас работать каждый раз, когда это изменение состояния. http://api.jquery.com/change/

приятный день!

0

Вы должны вызвать вышеуказанную функцию в OnChange Вашего флажком

<input type="checkbox" name="myCheckBox" onchange="callCheckBoxChangeFunction()" value="Bike" /> I have a bike<br /> 
1

Кроме того, необходимо подписаться на изменения-события:

<script type="text/javascript"> 
    $(function(){ 
     var changeHandler = function() { 
      if ($(this).is(':checked')) { 
      alert('Yes my checkbox is checked'); 
      } else { 
      alert('No my checkbox is not checked'); 
      } 
     }; 

     $('#myCheckbox').change(changeHandler) 
         .trigger('change'); 
    }); 
</script> 

Что он делает:

  1. Используйте событие onload для создания функции, которая будет использоваться в качестве обработчика события для события change
  2. Зарегистрируйте changeHandler в ChangeEvent от флажка
  3. Trigger изменения-события загрузки страницы, так что также запускается при первой загрузке страницы (синтетическое событие)

Теперь, что интересно об этом подходе заключается в том, что он позволяет использовать changeHandler более общим образом. Так как вы используете $ (это) вместо $ (селектор) внутри обработчика, вы можете использовать эту функцию для делегирования событий, например, так:

$('body').on('change', 'input[type=checkbox]', changeHandler); 

Этот регистр бы changeHandler слушать все изменения-события на флажках на всей странице.

1
<script type="text/javascript"> 

    $('#myCheckBox').change(function() { 
     if ($(this).is(':checked')) { 
       alert('Yes my checkbox is checked'); 
     } else { 
       alert('No my checkbox is not checked'); 

     }; 
    }); 
    <script> 
Смежные вопросы