Что ж, мне любопытно, почему вам нужно обновить скрытое поле и дублировать данные. Но если вы настаиваете, вот «одно решение подходит всем», хотя вы можете потерять некоторую гибкость, делая это вместо того, чтобы вручную прикреплять каждый элемент.
Сначала HTML:
<form id="form">
<input type="text" id="txtName" />
<input type="hidden" id="hdnName" />
<input type="text" id="txtEmail" />
<input type="hidden" id="hdnEmail" />
<select id="selGender">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
<input type="hidden" id="hdnGender" />
</form>
Теперь, Javascript:
$(document).ready(function() {
$("#form").find("input[type='text'], select").change(function() {
$this = $(this);
var id = $this.attr("id");
id = id.split(3, id.length - 1);
$("#hdn" + id).val($this.val())
});
});
Чтобы это работало, предполагается, что каждое из ваших полей имеет поля text
, а также что они соответствуют соглашению об именах, которое я использовал здесь ([txt|sel]FieldName
, hdnFieldName
)