我在页面上有一个隐藏的输入字段
<div id="SomeDiv">
<input type="text" name="ID" id="ID" value="Something"/>
</div>
如果我使用$(“#SomeDiv #ID”)。在IE9中的val()我得到的值“Something”但在IE6中我得到了未定义。如果我将id和名称更改为小写IE6正确返回。即。
<div id="SomeDiv">
<input type="text" name="id" id="id" value="Something"/>
</div>
然后$("#SomeDiv #id").val()
。注意我没有改变div id的情况,只改变输入。
还有其他人遇到过这种情况吗?客户端正在使用IE6,因此切换浏览器不是一种选择,我不断遇到这个问题。
更新:
我已将id值从“ID”更改为“WizardID”,并且可以在IE6中使用
<div id="SomeDiv">
<input type="text" name="WizardID" id="WizardID" value="Something"/>
</div>
$("#SomeDiv #WizardID").val()
我也遇到了一个名为“IsValid”字段的问题,IE6根本无法找到该字段,但如果我将其重命名为“isValid”bam则找到它。我怀疑它是jquery的一个错误,但怀疑它将被修复,因为IE6已经过了很长时间。谢谢您的帮助。
答案 0 :(得分:2)
如果可能,您应该更改html:
在Internet Explorer中,如果您尝试使用的目标元素 getElementById,由于某种原因浏览器将搜索名称 除了id。
之外,页面上某些元素的属性
使用id =“id”也可以触发一堆其他IE问题。
答案 1 :(得分:-1)
最好的办法是将所有id和类更改为每个通用标准的小写。这样你就不会应用任何创可贴修复。