Ale*_*s G 9 javascript jquery internet-explorer html-input
继续采用我的代码来使用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>
Run Code Online (Sandbox Code Playgroud)
我使用jquery将值设置为字段.我打开编辑div的功能看起来像这样:
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();
});
}
Run Code Online (Sandbox Code Playgroud)
所有这些在FF,Opera,Webkit和IE 9中运行良好,但在IE7和IE8中,我遇到了一个奇怪的问题.我可以item_id在edit_item函数中看到正确设置,但是一旦该函数完成,隐藏的输入值(qid)就会重置为空字符串.当表单被ajax提交时,警报会将值显示为空字符串,尽管它已正确设置.有趣的是,所有其他领域都很好.它在IE 9中正常工作.
我在这里错过了什么?提前谢谢了.
Ale*_*s G 23
这完全是愚蠢的,但事实并非如此:
$('#field1').val(item.property1);
Run Code Online (Sandbox Code Playgroud)
不工作.然而
$('#field1').attr("value", item.property1);
Run Code Online (Sandbox Code Playgroud)
工作得很好.我要离开了.
| 归档时间: |
|
| 查看次数: |
18071 次 |
| 最近记录: |