Как снять отметку с установленного переключателя
Дело в том, что это решение работает только в firefox
$(':radio').on("change", function(event){
$(this).prop('checked', true);
});
$(':radio').on("click", function(event){
$(this).prop('checked', false);
});
В хром он не позволит вам выбрать что-либо
http://jsfiddle.net/wuAWn/
Ofc, я мог бы использовать переменную и писать что-то вроде
var val = -1;
$(':radio').on("click", function(){
if($(this).val()==val)
{$(this).prop('checked', false);
val = -1;
}
else val = $(this).val();
});
Но у меня будет несколько групп переключателей на моей странице, а содержимое html загружается через ajax, поэтому я бы хотел использовать функцию 1 для всех из них, вместо того, чтобы определять переменные для каждой группы переключателей и записывать одну и ту же функцию для каждая группа переключателей.
Изменить: спасибо за вашу помощь с флажками, но для флажков, чтобы действовать как группа переключателей, вам нужно написать adittional javascrip, который снимет все другие флажки с тем же именем onclick, у меня уже есть переключатель css и его проще для мне просто добавить класс, похожий на check-like-checkbox, и сделать его похожим на checkbox, я использую единую библиотеку для пользовательского вида, в любом случае вот мое странное решение http://jsfiddle.net/wuAWn/9/
Ответы
Ответ 1
Этот простой script позволяет снять отметку с уже установленного переключателя. Работает на всех браузерах с поддержкой javascript.
<html>
<!-- html from your link: [http://jsfiddle.net/wuAWn/][1] -->
<body>
<input type='radio' class='radio-button' name='re'>
<input type='radio' class='radio-button' name='re'>
<input type='radio' class='radio-button' name='re'>
</body>
<script type="text/javascript">
var allRadios = document.getElementsByName('re');
var booRadio;
var x = 0;
for(x = 0; x < allRadios.length; x++){
allRadios[x].onclick = function() {
if(booRadio == this){
this.checked = false;
booRadio = null;
}else{
booRadio = this;
}
};
}
</script>
</html>
http://jsfiddle.net/6Mkde/
Ответ 2
Радиоустройства должны быть требуемыми параметрами... Если вы хотите, чтобы они были сняты, установите флажок, нет необходимости усложнять ситуацию и разрешать пользователям снимать флажок; удаление JQuery позволяет вам выбрать один из них
Ответ 3
Вы можете подумать о добавлении дополнительного переключателя в каждую группу с надписью "none" или тому подобное. Это может создать постоянный пользовательский интерфейс, не усложняя процесс разработки.
Ответ 4
попробуйте это
одна функция для всех радиоприемников имеет класс " радиокнопка
работают в хроме и FF
http://jsfiddle.net/wuAWn/5/
$('.radio-button').on("click", function(event){
$('.radio-button').prop('checked', false);
$(this).prop('checked', true);
});
Ответ 5
попробуйте это
http://jsfiddle.net/wuAWn/6/
$('.radio-button').on("click", function (event) {
var this_input = $(this);
if (this_input.attr('checked1') == '11') {
this_input.attr('checked1', '11')
}
else {
this_input.attr('checked1', '22')
}
$('.radio-button').prop('checked', false);
if (this_input.attr('checked1') == '11') {
this_input.prop('checked', false);
this_input.attr('checked1', '22')
}
else {
this_input.prop('checked', true);
this_input.attr('checked1', '11')
}
});