У меня есть HTML-форма, где я использую кнопки «радио», но я бы хотел, чтобы они работали, как если бы они были комбинацией радио и флажка: можно проверить один вариант, но также есть возможность отменить выбор опции.Сочетание радио и флажка
Моя формы здесь:
<form name="myform">
<input type="radio" name="transport" value="transport1">
<input type="radio" name="transport" value="transport2">
<input type="radio" name="transport" value="transport3">
</form>
Я нашел хорошую функцию, чтобы сделать это:
<script>
$(document).ready(function() {
(function ($) {
$.fn.uncheckableRadio = function() {
return this.each(function() {
var radio = this;
$('label[for="' + radio.id + '"]').add(radio).mousedown(function() {
$(radio).data('wasChecked', radio.checked);
});
$('label[for="' + radio.id + '"]').add(radio).click(function() {
if ($(radio).data('wasChecked'))
radio.checked = false;
});
});
};
})(jQuery);
$('input[type=radio]').uncheckableRadio();
});
</script>
Но эта функция вредит мою другую функцию, которая используется для подсчета цены от формы входов (при Я выбираю цену радиоконтента, добавленную правильно, но когда я отменю выбор, она не изменяется):
function count_price()
{
var price=0;
if (document.forms["myform"].transport[0].checked) {price+=100;}
if (document.forms["myform"].transport[1].checked) {price+=50;}
if (document.forms["myform"].transport[2].checked) {price+=200;}
}
document.all["counted_price"].innerHTML=price;
};
Без использования этой функции «uncheckableRadio» функция count_price работает хорошо.
Когда вы говорите, «возможность UNSELECT вариант», вы имеете в виду вы хотите, способность иметь не выбраны на все варианты? Почему бы просто не включить дополнительный радиокнопку с надписью «no transport»? Таким образом, вам вообще не понадобится сценарий. – Simba
Мне нужна эта возможность выбора. – gugogu