Гуглил, но нашел какие-то сложные js-штуки, а надо совсем простой скрипт и вообще хочу сам принцип понять.
Что нужно?
есть чекбоксы
<input type="checkbox" name="checks[]" value="1">
<input type="checkbox" name="checks[]" value="2"> и т.д.
Каждому value соответствует своя цена. Суммарную цену при клацании по чекбоксам нужно выводить в текстовом инпуте.
Как реализовать? Буду очень благодарен.
Спустя 52 минуты, 40 секунд (2.07.2010 - 17:43) vagrand написал(а):
<input type="checkbox" name="checks[]" value="1" onClick='changePrice(this);'>
<input type="checkbox" name="checks[]" value="2" onClick='changePrice(this);'>
<input type='text' id='totalPriceField'>
<script>
function changePrice(checkBox)
{
if (checkBox.checked == true) {
document.getElementById('totalPriceField').value = parseInt(document.getElementById('totalPriceField').value) + parseInt(checkBox.value);
} else {
document.getElementById('totalPriceField').value = parseInt(document.getElementById('totalPriceField').value) - parseInt(checkBox.value);
}
}
</script>
Благодарность можешь на карме отобразить.
Спустя 4 часа, 21 минута, 42 секунды (2.07.2010 - 22:05) noo написал(а):
Спасибо, уже отразил)
Но, у меня пока в форме для счета отображается NaN
Объясни, что не так сделал?
До формы вставил код скрипта, потом
Это правильно?
Но, у меня пока в форме для счета отображается NaN
Объясни, что не так сделал?
До формы вставил код скрипта, потом
onClick='changePrice(переменная_стоимости);'>
вроде такого:
onClick='changePrice(1.5);'>
Это правильно?
Спустя 3 часа, 46 минут, 4 секунды (3.07.2010 - 01:51) sergeiss написал(а):
Нет, не правильно! Тебе написали полный код, не надо там изменений вносить.
Величина будет взята автоматически из текстового поля, расположенного (в приведенном примере), ниже чек-боксов.
Величина будет взята автоматически из текстового поля, расположенного (в приведенном примере), ниже чек-боксов.
Спустя 8 часов, 43 минуты, 46 секунд (3.07.2010 - 10:35) noo написал(а):
Цитата (sergeiss @ 2.07.2010 - 22:51) |
Величина будет взята автоматически из текстового поля, расположенного (в приведенном примере), ниже чек-боксов. |
Так величина должна там отображаться.
Я не понимаю, откуда будут браться значения для складывания?
эти значения не равны value, в том-то и дело. Value чекбоксовские - это id услуг, а куда стоимость-то передавать?
Спустя 3 часа, 17 минут, 54 секунды (3.07.2010 - 13:52) vagrand написал(а):
Цитата |
Каждому value соответствует своя цена. Суммарную цену при клацании по чекбоксам нужно выводить в текстовом инпуте. |
Вот жеж вы пишете что соответствует. Значит нужно конкретизировать.
Если у вас в value только ID услуг то скрипт можно модифицировать следующим образом:
<input type="checkbox" name="checks[]" value="some_id" onClick='changePrice(this, 15.2);'>
<input type="checkbox" name="checks[]" value="some_id" onClick='changePrice(this, 23.44);'>
<input type='text' id='totalPriceField'>
<script>
function changePrice(checkBox, price)
{
if (checkBox.checked == true) {
document.getElementById('totalPriceField').value = parseFloat(document.getElementById('totalPriceField').value) + parseFloat(price);
} else {
document.getElementById('totalPriceField').value = parseFloat(document.getElementById('totalPriceField').value) - parseFloat(price);
}
}
</script>
Спустя 10 часов, 19 минут, 52 секунды (4.07.2010 - 00:12) noo написал(а):
Я прошу прощения, но делаю все, как указано выше и у меня все равно выскакивает NaN.
Чтобы проверить даже создал отдельный html-файл с кодом:
вроде бы ничего не мешает, но не работает.
Чтобы проверить даже создал отдельный html-файл с кодом:
<script>
function changePrice(checkBox, price)
{
if (checkBox.checked == true) {
document.getElementById('totalPriceField').value = parseFloat(document.getElementById('totalPriceField').value) + parseFloat(price);
} else {
document.getElementById('totalPriceField').value = parseFloat(document.getElementById('totalPriceField').value) - parseFloat(price);
}
}
</script>
<form>
<input type="checkbox" name="checks[]" value="1" onClick='changePrice(this, 15.2);'>
<input type="checkbox" name="checks[]" value="2" onClick='changePrice(this, 11);'>
<input type="checkbox" name="checks[]" value="2" onClick='changePrice(this, 1);'>
<input type="text" disabled style="width:50px" id="totalPriceField">
<input name="yes" type="submit" value="Оплатить" /> </form>
вроде бы ничего не мешает, но не работает.
Спустя 28 минут, 43 секунды (4.07.2010 - 00:41) linker написал(а):
В
<input type="text" disabled style="width:50px" id="totalPriceField">добавьте value="0", вот так:
<input type="text" disabled style="width:50px" id="totalPriceField" value="0">
Спустя 18 минут, 56 секунд (4.07.2010 - 01:00) noo написал(а):
linker, vagrand, спасибо большое. Теперь все отлично.