Как сделать реакцию на изменение любого элемента формы.
Привет народ.
У меня есть форма с кучей полей. По кнопке все поля ajax'яться на сервер и по ним считается цена товара. Потом цена записывается в поле, чтобы юзер видел и становиться активна кнопка 'заказать'. Я хочу приделать некий скрипт на изменении любого поля формы, чтобы кнопка 'заказать' гасла(так как цена естественно будет другая). Как сделать реакцию на изменение любого элемента формы? Запихивать в onchange каждого элемента формы вызов нужной функции, это паталогическое рукоблудие(input 'ов очень много), должно быть какое-то более простое решение. Возможно тема уже обсуждалась, но я не представляю, как объяснить проблему поиску. Вбивал вопрос как есть - ничего не нашел... :help: |
Нашел более или менее приличное решение:
http://api.jquery.com/change/ Но все равно не айс. Странно что не сделали onchange для все формы :-? |
попробуй на всю форму change обработчик повесить :)
щас намучу пример Пример: На Mootools
<form id="a"> <input><select><option></option><option>kjkj</option></select> </form> <button id="b" style="display:none">отправить</button> <script src="http://yandex.st/mootools/1.3.1/mootools.min.js"></script> <script> var b = $("b").style; $("a").addEvent("change", function(){ var ok = true; this.getChildren().each( function(a,b,c){ if( a.value.length === 0 ) ok = false; }); b.display = ok ? "block" : "none"; }) </script> // по изменению формы $("a").addEvent("change", function(){ var ok = true; // проходимся по детям. // если один из детей пуст - форма забракована. this.getChildren().each( function(a,b,c){ if( a.value.length === 0 ) ok = false; }); $("b").style.display = ok ? "block" : "none"; }) |
В конечном счете сделал так:
function formOnChange() { disableSendButtons(true); } jQuery("#frame-params").bind("change", formOnChange); #frame-params - id формы вроде работает |
Часовой пояс GMT +3, время: 08:09. |