Я пытаюсь определить, когда какой-либо набор именованных полей ввода/выбора/радио/проверенных/скрытых в форме изменяется.jQuery убрать все изменения в именованный ввод в форме
В частности, я хотел бы зафиксировать, когда будут внесены какие-либо изменения в поля, соответствующие селектору jQuery $("form :input")
, и где этот вход имеет атрибут name
. Однако форма не является статичной, то есть некоторые из полей динамически добавляются позже.
Моя первая мысль, чтобы отслеживать, когда новые названные элементы, соответствующие :input
добавляются, а затем добавить обработчик событий, как это:
function on_change() {
alert("The form element with name " + $(this).attr("name") + " has changed");
}
function reg_new_e_handler(input_element) {
input_element.change(on_change);
}
Однако я вполне надеюсь, я могу избежать этого с некоторые магии jQuery. В частности, есть способ, чтобы зарегистрировать обработчик событий в JQuery, который будет обрабатывать входные элементы, которые соответствуют следующим:
$("form :input").filter(function() { $(this).attr("name") }).change(on_change);
однако, это событие установлено обновление каждый раз, когда добавляются новые элементы ввода.
Я думал, что это может быть возможным, чтобы захватить keyup
события на form
узле с $("form").keyup(on_change)
, но я не так уверен, как можно было бы захватить change
события.
Мне также понравилось бы снимать keyup
событий.
Благодарим вас за чтение.
Brian
Вы можете просто сделать: input [name], чтобы получить все именованные элементы. –
Да, '$ (': input [имя]'). Live ('change onkeyup', foo);' работает так, как ожидалось. Это злобно круто! –