Как в oninput получить значения select?
Здравствуйте.
Имеется форма, где через oninput, соответственно, вычисляется значения из инпутов и выводится в output. Но, есть одна проблема, когда выбрать из селекта одно из значений, соответственно, меняется значения в id='paketscount' , но это значения динамически не меняется при подсчете oninput. Подскажите, пожалуйста, можно как-то напрямую вытащить значение value из select и домножить его к (3.5 / 10), вместо paketscount.value ? <form action="#" method="post" data-ajax="false" oninput="output.value = (3.5 / 10) * paketscount.value "> <select name="sitetime" id="sitetime" onchange="document.getElementById('paketscount').value=value; with (this) document.getElementById ('rez').value=value = (selectedIndex) ? options [selectedIndex].text / 15 - 1 : '3'"> <option value="1" >60</option> <option value="2" >90</option> <option value="2" >120</option> <option value="3" >150</option> <option value="3" >180</option> <option value="4" >210</option> <option value="4" >240</option> <option value="5" >270</option> <option value="5" >300</option> </select> <div class="patets"><input style="width:50px!important; flaot:left;" type='text' id='paketscount' value="1" /></div> <input id="rez" style="width:50px!important; flaot:left;" type='text' value="3" /> <output name="output">1</output> </form> |
sitetime.value ?
Кстати, output - HTML5 элемент, со всеми вытекающими.. Можно на input[readonly] заменить. Ну или на div/span и менять innerHTML вместо value |
sitetime.value не срабатывает
Добавил sitetime.value в oninput, output заменил на input, но но значения из селекта sitetime не вытягивается.
|
<form action="#" method="post" data-ajax="false" onchange="output.value = (3.5 / 10) * paketscount.value " oninput="onchange()"> <select name="sitetime" id="sitetime" onchange="document.getElementById('paketscount').value=value; with (this) document.getElementById ('rez').value=value = (selectedIndex) ? options [selectedIndex].text / 15 - 1 : '3'"> <option value="1" >60</option> <option value="2" >90</option> <option value="2" >120</option> <option value="3" >150</option> <option value="3" >180</option> <option value="4" >210</option> <option value="4" >240</option> <option value="5" >270</option> <option value="5" >300</option> </select> <div class="patets"><input style="width:50px!important; flaot:left;" type='text' id='paketscount' value="1" /></div> <input id="rez" style="width:50px!important; flaot:left;" type='text' value="3" /> <output name="output">1</output> </form> |
Спасибо за помощь, всё работает.
Осталось только по сабмиту передать значения из этих полей включая цену. Проблема в томб что динамических значений value в коде нет. Как их собственно передать? |
Цитата:
Ну и имей ввиду что цену можно изменять через консоль браузера. Так что передавать ее можно только для ориентира. Вобще, лучше пересчитывать на сервере по той же формуле. |
Спасибо, действительно проще будет пересчитать на сервере.
|
Jeick9, не проще. Что может быть проще, чем получить $_POST['price'] ? Не проще, но надежнее (если эта надежность требуется)
|
Впиши в action реальный адрес обработчика, добавь кнопку submit и все будет работать. Учитывая твое data-ajax="false" - у тебя есть скрипт, отсылающий формы аяксом, но тебе это не нужно.
|
Так не делается. Посчитать что-то можно чтобы показать юзеру, а посчитать что-то чтобы выставить юзеру счет - только на сервере.
flaot:left; И работает? |
Часовой пояс GMT +3, время: 14:05. |