Продолжаю адаптировать мой код для работы с IE...
У меня есть скрытый div
, содержащий форма для редактирования некоторой информации. Когда пользователь выбирает элемент для редактирования, отображается этот элемент div, а поля заполняются информацией для элемента. Этот div (в упрощенном виде) выглядит так:
<div id="editform">
<form action="" method="post" id="qform" name="qform">
First param: <input name="field1" id="field1"/> <br/>
Second param: <input name="field2" id="field2"/> <br/>
...
<input type="hidden" name="qid" id="qid" value=""/>
<img id="submit" src="..." alt="..." title="..." />
</form>
Я использую jquery для установки значений в поля. Моя функция открытия блока редактирования выглядит примерно так:
function edit_item(item_id) {
item = get_item(item_id); //this will return a JS object
$('#field1').val(item.property1);
$('#field2').val(item.property2);
...
$('#qid').val(item_id);
$('#submit').click(function() {
alert($('#qid').val());
$('#qform').ajaxSubmit();
});
}
Все это прекрасно работает в FF, Opera, Webkit и IE 9, однако в IE7 и IE8 у меня возникла странная проблема. Я вижу, что item_id
правильно устанавливается в функции edit_item
, однако, как только эта функция завершается, скрытое входное значение (qid
) сбрасывается до пустой строки. Когда форма отправляется с помощью ajax, предупреждение показывает, что значение представляет собой пустую строку, несмотря на то, что оно установлено правильно. Интересно, что все остальные поля в порядке. И это правильно работает в IE 9.
Что я здесь упускаю? Спасибо заранее.