У меня есть группа флажков:
<input type="checkbox" value="v1" name="q_119[]">
<input type="checkbox" value="v2" name="q_119[]">
<input type="checkbox" value="v3" name="q_119[]">
<input type="checkbox" value="v4" name="q_119[]">
И я хочу проверить, был ли установлен один конкретный флажок (скажем, тот, у которого value="v4"
и если да, добавьте класс css в другой элемент на странице.
Я попытался использовать этот код:
$('input[name="119[]"]').click(function(){
if ($('input[value="v1"]:checked'))
{
{
$('#qu_120').removeClass('hide');
}
else
{
$('#qu_120').addClass('hide');
}
}
});
Но класс не применяется, когда флажок установлен. Вот jsFiddle моих усилий
Вы просто ошиблись в своем selector
. Проверьте имя.
Пытаться,
$('input[name="q_119[]"]').click(function(){
if ($('input[value="v1"]').is(':checked'))
{
$('#qu_120').removeClass('hide');
}
else
{
$('#qu_120').addClass('hide');
}
});
У вас есть четыре проблемы, препятствующие этому:
$('input[name="119[]"]').click(function(){ // name attr is incorrect, should be "q_119[]"
if ($('input[value="v1"]:checked')) // returns an object, so it will always be true
{ // <- unexpected curly brace
{
$('#qu_120').removeClass('hide');
}
else
{
$('#qu_120').addClass('hide');
}
} // <- unexpected curly brace
});
Фиксация этих...
$('input[name="q_119[]"]').click(function () { // name attr is now correct
if ($('input[value="v1"]:checked').length) { // length is an integer which returns 0 if the selector cannot find the element
$('#qu_120').removeClass('hide');
} else {
$('#qu_120').addClass('hide');
}
});
и ваш код работает нормально: http://jsfiddle.net/fXKFp/8/
Пытаться:
$('input[name="q_119[]"]').change(function(){
if ($('input[value="v1"]').prop('checked')){
$('#qu_120').removeClass('hide');
}
else{
$('#qu_120').addClass('hide');
}
});
$('input[name="q_119[]"]').click()
.