Я пытаюсь определить, когда какой-либо из набора именованных полей ввода / выбора / радио / отмеченных / скрытых в форме изменяется.
В частности, я хотел бы получить информацию, когда какие-либо изменения вносятся в поля, соответствующие селектору 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