Изменение value при выборе radio кнопки
Подскажите как сделать что бы когда input radio выбран его value становилось 1 а когда не выбран 0?
С checkbox'ом у меня получилось <input type="radio" name="ves" id="ves1" value="0" onchange="addIt(this.value = this.checked ? 10 : 0)"> А с радио кнопкой он меняется 1 раз, и больше не меняется. |
В этом нет нужды. Просто где нужно делай непосредственно проверку if (this.checked) вместо if (this.value == "1")
|
Забыл сказать что я полный ноль, в js и кое как учусь, не могли бы вы поподробнее рассказать как это сделать?
|
А как ты хочешь сделать это со сменой value? Код покажи.
|
Вот код
<form action="" method="post" id="frm" onsubmit="return checkForm()"> <div id="mydiv" style="display:block;"> <div id="mydiv-block"> <input type="radio" name="ves" id="ves1" value="0" class="test" onchange="addIt(this.value = this.checked ? 10 : 0)"> <label for="ves1">от 1кг до 3кг</label> </div> <div id="mydiv-block"> <input type="radio" name="ves" id="ves2" value="0" class="test" onchange="addIt(this.value = this.checked ? 100 : 0)"> <label for="ves2">от 3кг до 5кг</label> </div> <div id="mydiv-block"> <input type="radio" name="ves" id="ves3" value="0" class="test" onchange="addIt(this.value = this.checked ? 1000 : 0)"> <label for="ves3">от 5кг до 15кг</label> </div> </div> <label for="price" class="name-mail-php">Стоимость товара, рос. руб.:<span>*</span></label><br> <input type="number" id="price" name="price" maxlength="300" required onchange="addIt()" ><br> <label for="pricedeliv" class="name-mail-php">Стоимость комиссии за доставку в РБ, рос. руб.:</label><br> <input type="number" id="pricedeliv" name="pricedeliv" maxlength="300" required readonly onkeyup="addIt()"><br><span2>10% от стоимости заказа</span2> <div id="maineu-dost"> Стоимость доставки:<input type="number" id="dostavkas" value="0" readonly>руб </div> <input type="number" id="itog" name="789" maxlength="300" readonly><br> </form> <script type="text/javascript"> <!-- function addIt() { var value1 = parseInt(document.getElementById("ves1").value); var value2 = parseInt(document.getElementById("ves2").value); var value3 = parseInt(document.getElementById("ves3").value); var value4 = parseInt(document.getElementById("price").value); var value5 = parseInt(document.getElementById("pricedeliv").value); var value6 = parseInt(document.getElementById("dostavkas").value); document.getElementById("pricedeliv").value = 0.1 * value4; document.getElementById("itog").value = value1 + value2 + value3 + value4 + value5 + value6; document.getElementById("dostavkas").value = value1 + value2 + value3; } // --> </script> |
Знаю что кое где id повторяются, но это никак ведь не влияет на то что мне нужно
|
<form action="" method="post" id="frm" onsubmit="return checkForm()"> <div id="mydiv" style="display:block;"> <div id="mydiv-block"> <input type="radio" name="weight" id="ves1" value="10" class="test"> <label for="ves1">от 1кг до 3кг</label> </div> <div id="mydiv-block"> <input type="radio" name="weight" id="ves2" value="100" class="test"> <label for="ves2">от 3кг до 5кг</label> </div> <div id="mydiv-block"> <input type="radio" name="weight" id="ves3" value="1000" class="test"> <label for="ves3">от 5кг до 15кг</label> </div> </div> <label for="price" class="name-mail-php">Стоимость товара, рос. руб.:<span>*</span></label><br> <input type="number" id="price" name="price" maxlength="300" required><br> <label for="pricedeliv" class="name-mail-php">Стоимость комиссии за доставку в РБ, рос. руб.:</label><br> <input type="number" id="pricedeliv" name="pricedeliv" maxlength="300" required readonly><br><span2>10% от стоимости заказа</span2> <div id="maineu-dost"> Стоимость доставки:<input type="number" id="dostavkas" value="0" readonly>руб </div> <input type="number" id="itog" name="789" maxlength="300" readonly><br> </form> <script> (function(){ var form = document.forms.frm; form.onchange = form.oninput = calcTotal; function calcTotal() { var weight = 0; for ( var i = 0; i < form.weight.length; i++) { weight += form.weight[i].checked * +form.weight[i].value; } var price = +form.price.value; var deliveryPrice = +form.pricedeliv.value; var huyPoimiChe = +form.dostavkas.value; form.pricedeliv.value = 0.1 * price; form.itog.value = weight + price + deliveryPrice + huyPoimiChe; form.dostavkas.value = weight; } })(); </script> |
Спасибо огромное, но смотрите если переключать вес с 3 на 2 пункт то конечная цифра не меняется
|
То есть нужно ещё сделать так, что бы при выборе другого пункта, прошлый обнулялся
|
Цитата:
У тебя явно ошибка - ты в расчетах используешь результаты предыдущего рассчета: Цитата:
|
Часовой пояс GMT +3, время: 04:51. |