Я хотел бы знать, есть ли способ определить, какой элемент был изменен в форме с помощью jQuery. У меня есть форма с примерно 40 различными полями и хотелось бы знать, какая из них была индивидуально изменена. Все элементы имеют другой идентификатор. Результат должен дать такой массив с идентификаторами элементов.
Используйте обработчик change
который добавляет ID в массив.
$(function() {
var changed = [];
$(":input").change(function() {
if (changed.indexOf(this.id) == -1) {
changed.push(this.id);
}
});
});
Это звучит как работа для .on()
и события change
. Это должно предупреждать идентификатор и значение любого элемента управления формой, когда он вызывает событие изменения:
$("#id-of-your-form").on("change", "input, textarea, select", function() {
var changedInput = $(this);
alert(changedInput.attr("id"), changedInput.val());
});
Думаю, вы могли бы также добавить другие события, такие как blur
, focus
и keypress
для захвата в любое время, когда пользователь что-либо делает с входами. (например, $("#id-of-your-form").on("change blur focus keypress"...
)