Отключение радиокнопок с помощью jQuery
Я пытаюсь отключить эти переключатели, когда нажимается ссылка loadActive, но по какой-то причине она отключает только первую очередь, а затем пропускает остальные.
<form id="chatTickets" method="post" action="/admin/index.cfm/">
<input id="ticketID1" type="radio" checked="checked" value="myvalue1" name="ticketID"/>
<input id="ticketID2" type="radio" checked="checked" value="myvalue2" name="ticketID"/>
</form>
<a href="#" title="Load ActiveChat" id="loadActive">Load Active</a>
И вот jquery, который я использую:
jQuery("#loadActive").click(function() {
//I have other code in here that runs before this function call
writeData();
});
function writeData() {
jQuery("input[name='ticketID']").each(function(i) {
jQuery(this).attr('disabled', 'disabled');
});
}
Ответы
Ответ 1
Я немного переработал ваш код, это должно сработать:
jQuery("#loadActive").click(writeData);
function writeData() {
jQuery("#chatTickets input:radio").attr('disabled',true);
}
Если в вашей форме больше двух переключателей, вам нужно будет изменить селектор, например, вы можете использовать начинается с фильтра атрибутов, чтобы выбрать радиостанции, чей идентификатор начинается с ticketID
:
function writeData() {
jQuery("#chatTickets input[id^=ticketID]:radio").attr('disabled',true);
}
Ответ 2
Удалите "каждый" и просто используйте:
$('input[name=ticketID]').attr("disabled",true);
Это просто. Он работает
Ответ 3
Во-первых, допустимый синтаксис
jQuery("input[name=ticketID]")
второй, вы пробовали:
jQuery(":radio")
вместо
третий,
почему бы не назначить класс всем переключателям и выбрать их по классу?
Ответ 4
Я только что создал среду с песочницей с вашим кодом, и это сработало для меня. Вот что я использовал:
<html>
<head>
<title>test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<form id="chatTickets" method="post" action="/admin/index.cfm/">
<input id="ticketID1" type="radio" checked="checked" value="myvalue1" name="ticketID"/>
<input id="ticketID2" type="radio" checked="checked" value="myvalue2" name="ticketID"/>
</form>
<a href="#" title="Load ActiveChat" id="loadActive">Load Active</a>
<script>
jQuery("#loadActive").click(function() {
//I have other code in here that runs before this function call
writeData();
});
function writeData() {
jQuery("input[name='ticketID']").each(function(i) {
jQuery(this).attr('disabled', 'disabled');
});
}
</script>
</body>
</html>
Я тестировал FF3.5, перейдя теперь на IE8. И он отлично работает и в IE8. Какой браузер вы используете?
Ответ 5
код:
function writeData() {
jQuery("#chatTickets input:radio[id^=ticketID]:first").attr('disabled', true);
return false;
}
Смотрите также: Селектор/радио, Селектор /attributeStartsWith, Селектор/первый
Ответ 6
просто используйте jQuery prop
$(".radio-button").prop("disabled", false);
$(".radio-button").prop("disabled", true); // disable
Ответ 7
Вы должны использовать классы, чтобы сделать его более простым, вместо имени атрибута или любого другого селектора jQuery.