Tiếp tục áp dụng mã của tôi để làm việc với IE ...jquery thiết lập giá trị đầu vào ẩn không làm việc như mong đợi trong IE7 và IE8
Tôi có một ẩn div
chứa một hình thức để chỉnh sửa một số thông tin. Khi người dùng chọn mục cần chỉnh sửa, div này được hiển thị và các trường được điền thông tin cho mục đó. Số div đó (theo thuật ngữ đơn giản) trông giống như sau:
<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>
Tôi sử dụng jquery để đặt giá trị vào các trường. Chức năng của tôi để mở div chỉnh sửa trông giống như sau:
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();
});
}
Tất cả điều này hoạt động tốt trong IE7 và IE8, tôi gặp sự cố lạ. Tôi có thể thấy item_id
được đặt chính xác trong chức năng edit_item
, tuy nhiên ngay sau khi chức năng đó hoàn tất, giá trị nhập ẩn (qid
) được đặt lại thành chuỗi rỗng. Khi biểu mẫu được gửi ajax, cảnh báo cho biết giá trị là một chuỗi trống mặc dù nó được đặt chính xác. Thật thú vị, tất cả các lĩnh vực khác là tốt. Và nó hoạt động chính xác trong IE 9.
Tôi thiếu gì ở đây? Rất cám ơn trước.
ID phải là duy nhất trong đặc tả HTML. Bạn có bội số của "# field1". Ngoài ra, ID không thể bắt đầu bằng dấu băm. Xem: http://stackoverflow.com/questions/448981/what-characters-are-valid-in-css-class-names –
Cảm ơn nhận xét, tuy nhiên đây không phải là vấn đề. Trong mã thực sự của tôi cả hai đều hợp lệ: ID duy nhất và không có dấu băm - lỗi chính tả khi tạo mã đơn giản cho câu hỏi. –
có thể chức năng edit_item đã được kích hoạt một lần nữa với thông số item_id sai? bạn đã cố thêm cảnh báo (item_id) chưa; dòng đến hàm edit_item? – Serhiy