Я хочу получить значение флажка в переменной результата. Но я получаю значение как «неопределенное» в окне предупреждения. В чем моя ошибка?
var result = ""; $("#required").change(function (){ result= $(".mycheckbox:checked").val(); alert(result); }); <div class=".mycheckbox"> <input id="required" type="checkbox" title="Required" name="required" value="required"> <label for="required">Required</label> </div>
Лучше использовать событие щелчка вместо изменения, поскольку событие изменения работает по-разному в зависимости от браузера, например. IE запускает событие изменения только тогда, когда флажок теряет фокус .
$(function() { $("#required").click(function (){ var result= $(this).attr('checked'); alert(result); }); });
Рабочая демоверсия
Изменить:
Думаю, я неправильно понял ваш вопрос. Если вы хотите отображать предупреждение со значением флажка, когда флажок установлен, то будет работать что-то вроде следующего
$(function() { $("#required").click(function (){ if ($(this).is(':checked')) { var result = $(this).val(); alert(result); } }); });
В вашем коде
result= $(".mycheckbox:checked").val();
Я думаю, что это должно быть
result= $("#required").val();
Вы можете сделать что-то вроде:
var result = ($("#required").is(':checked')) ? $("#required").val() : false;
$ (". Mycheckbox: флажок") неверно, должно быть:
$(".mycheckbox :checked")
(обратите внимание на пробел)
Ваша декларация div также неверна. Вы не должны добавлять точку в имя класса:
<div class="mycheckbox">