Как сделать реакцию на изменение любого элемента формы.
Привет народ.
У меня есть форма с кучей полей. По кнопке все поля 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, время: 00:06. |