Подсчет данных с форм
Здравствуйте!
Я новичок в js, возникла такая проблема: Необходимо, чтобы некий скрипт собирал данные со всех input'ов, находящихся на странице (в том числе и checkbox'ов, принимая их за 1/0), и затем по нажатию на кнопку подставлял их в некую формулу в нужные места (в зависимости соответственно от id (или name, я не уверен) начального input'а) и выводил готовый результат в виде текста. Несколько дней пробовал сделать, находил разные варианты, и через js, и через php метода post, но не смог до конца приспособить ни один. Собственно, хотел бы попросить показать мне код, который будет делать то, что я описал выше, и желательно самый-самый простой изо всех вариантов, чтобы я смог дописывать туда новые input'ы или функции сам. Пожалуйста:) |
MikFreeD,
сделайте небольшой макет, и куда собирать? |
Цитата:
Вот макет - нажатие на картинку должно создать под ней абзац, в котором появится любой текст и число, подсчитанное по некой формуле с использованием данных из input'ов. (например: "input1"+"input2"-"input3"+"100*"input4"") <html> <body> <form> <input id="1" type="text" name="1"> <input id="2" type="text" name="2"> <input id="3" type="text" name="3"> <input type = 'checkbox' id = '4' name="4"> </form> <img src="#"> </body> </html> |
MikFreeD,
<html>
<body>
<form>
<input id="1" type="text" name="1">
<input id="2" type="text" name="2">
<input id="3" type="text" name="3">
<input type = 'checkbox' id = '4' name="4">
</form>
<img src="http://javascript.ru/forum/images/smilies/smile.gif">
<p></p>
<script>
window.addEventListener('DOMContentLoaded', function() {
var form = document.querySelector('form'),
input = form.querySelectorAll('input'),
img = document.querySelector('img'),
p = document.querySelector('p'), arr;
img.addEventListener('click', function() {
arr = [].map.call( input, function(i) {
return i.type == 'checkbox' ? +i.checked : (+i.value||0)
},0);
p.innerHTML = arr[0]+ arr[1] - arr[2] + 100 * arr[3]
});
});
</script>
</body>
</html>
|
Цитата:
|
MikFreeD,
да |
| Часовой пояс GMT +3, время: 07:34. |