| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Динамический подсчет цены |
| Автор: RomanK 21.10.2006, 19:25 | ||
| Здравствуйте! Есть задача: существует форма, в которой есть несколько radio кнопок, и рядом с каждой еще есть флажок! Типа вот этого:
Необходимо сделать так, чтобы при нажатии на какую-либо radio кнопку в поле total сразу же появилась цена, соответствующая полю price данной radio кнопки! + Если нажать !!!соответствующий флажок!!!, то есть тот... который рядом с radio кнопкой, то к текущему значению поля total прибавляется еще поле price данного флажка!!! То есть радио кнопке type со значением 1 будет соответствовать флажок с именем type_1. И если нажать не тот флажок... не соответствующий нажатой radio кнопке, то ничего не должно происходить! Возможно ли такое сделать??? Я думаю что возможно. У меня получилось сделать так... чтобы price радио кнопки отображался в total, но вот чтобы еще флажки прибавлялись... неполучается! Огромное спасибо! |
| Автор: SelenIT 21.10.2006, 20:25 | ||
Как вариант:
|
| Автор: RomanK 21.10.2006, 20:32 | ||
| SelenIT, огромнейшее спасибо!!! Мне это и надо было!!! Добавлено @ 20:44 Надеюсь я не совсем наглею?... но есть еще вопросик... Как в это добавить еще вот такую возможность: Таже самая форма... но есть еще одна строка в форме:
Теже самые условия... только если вводят в поле type_3 количество дней... ну там 5, 6, и т.п., то к цене в total прибавляется не 60, а 60 * количество дней (введенное). Спасибо еще раз!!! |
| Автор: SelenIT 21.10.2006, 22:09 | ||||
| Хм... тогда немного сложнее - глобальным перехватом клика уже не отделаться. Чтобы как-то сохранить единообразие, придется, видимо, изменить разметку - значение цены у элементов type_n снова перенести, все-таки, в кастомный атрибут price, а value выставить в 1 для чекбоксов и 0 (по умолчанию) для текстового поля. Тогда в ф-ции строка 20 заменится на
А на onkeyup и onchange надо будет навесить ф-цию checktext(event):
|
| Автор: RomanK 21.10.2006, 22:34 | ||
| ОГРОМНОЕ ТЕБЕ СПАСИБО!!! Вот окончательный вариант:
|
| Автор: SelenIT 21.10.2006, 22:56 |
| RomanK, все-таки onchange тоже надо бы отслеживать - вдруг юзер вставит значение в поле мышкой из буфера? Вообще лучше всегда писать обработчики событий в нижнем регистре, иначе к ним не получится обратиться в самом скрипте. Кроме того, для универсальности можно поставить эти обработчики на <form>, а не на <input> - тогда, если в форме появится еще одна строка такой структуры, это автоматом будет работать и для нее. |
| Автор: RomanK 21.10.2006, 23:05 |
| То есть что ты предалагаешь? На onchange тоже поставить checktext(event);? Так? А если ведь я на onchange поставлю, то тогда наверно onkeyup можно убрать, да? |
| Автор: SelenIT 21.10.2006, 23:24 |
| RomanK, я бы оставил оба. onkeyup отcледит ввод с клавиатуры в реальном времени, а onchange дополнительно подстрахует при других способах ввода. |
| Автор: RomanK 21.10.2006, 23:42 |
| SelenIT, ок... так и сделаю. Огромное спасибо! |