Спасибо, что прочитали это
Я думал, что могу использовать find (), но не смог заставить его работать. Я знаю, что могу добавлять идентификаторы или имена классов, но хотел бы знать, как это сделать с текущей разметкой.
Спасибо
Вот HTML
<input name = "keywordCheckbox" type = "checkbox" value = "S" />
<input name = "keywordCheckbox" type = "checkbox" value = "C" />
<input name = "keywordCheckbox" type = "checkbox" value = "A" />
и js
<script language = "Javascript" src = "javascript/jquery-1.2.6.min.js"></script>
<script type = "text/JavaScript">
$(function(){
$('[name = "keywordCheckbox"]').bind("click",
function() {
if ($(this).attr("checked") == true) {
switch(this.value) {
case "A":
var $_this = $(this) ;
$('[name = "keywordCheckbox"]').each(function() {
if ($(this).val() != $($_this).val()) { $(this).attr("checked",false); }
});
break ;
default:
DOESN'T WORK --> $('[name = "keywordCheckbox"]').find('[value = "A"]').attr("checked", false);}
} // END Switch
} // END If
}); // End BIND
}); // End eventlistener
</script>
извините, я вижу, как это было непонятно. Думаю, мой ответ проясняет мои намерения. Вы сказали, что я снимаю флажок с ввода неверно? Мне было бы интересно ваше решение .. ссылка не дала мне другого решения
да. Код, который вы использовали в строке, которую вы пометили как «НЕ РАБОТАЕТ» в приведенном выше источнике, не может работать, поскольку, насколько мне известно, нет атрибута или метода ложный в любом объекте, который возвращает attr (name). Я хотел предложить то, как вы это делаете в опубликованном ниже решении с помощью attr (key, value).
извините, я не уловил этого. Спасибо. Я отредактировал свой вопрос

Или вы могли бы сделать:
$("input[name='keywordCheckbox']").filter("input[value='A']")
Тогда нет необходимости в каждой функции.
Вы должны иметь возможность связать селекторы атрибутов:
$('input[name = "keywordCheckbox"][value = "A"]').attr("checked",false);
Будет установлено значение false для ввода с именем keywordCheckbox и значением A.
$('input[name = "keywordCheckbox"][value! = "A"]').attr("checked",false);
будет установлено значение false для входов с именем keywordCheckbox, значения которых не равны A.
РЕДАКТИРОВАТЬ
Я только что протестировал следующее в Firefox / Macintosh с последней версией jQuery. Работает отлично. Какую версию jQuery вы используете?
$(document).ready( function() {
$('input[name=keywordCheckbox]').bind( 'click', function() {
if (this.checked) {
if (this.value == 'A') {
$('input[name = "keywordCheckbox"][value! = "A"]')
.attr("checked",false);
}
else {
$('input[name = "keywordCheckbox"][value = "A"]')
.attr("checked",false);
}
}
});
});
приношу свои извинения, я протестировал ваш код, и он работал нормально. изначально у вас был ^ вместо! для отрицательного теста, но я думал, что проверил его в обоих направлениях ... может быть, я поставил пробел между [имя] и [значение] ... в любом случае мне нравится ваше решение ... проголосовал за и выбрал этот ответ
Да уж. Я заметил эту опечатку и исправил ее позже. Спасибо.
Можете ли вы подробнее рассказать о том, что вы пытаетесь сделать? Я думаю, вы пытаетесь снять флажок со значения «А», но это не так. Проверить docs.jquery.com/Attributes/attr#keyvalue