由于大写的id,jquery选择器在IE6中不起作用

时间:2012-03-21 23:34:13

标签: javascript jquery

我在页面上有一个隐藏的输入字段

<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已经过了很长时间。谢谢您的帮助。

2 个答案:

答案 0 :(得分:2)

如果可能,您应该更改html:

    
  

在Internet Explorer中,如果您尝试使用的目标元素   getElementById,由于某种原因浏览器将搜索名称   除了id。

之外,页面上某些元素的属性

使用id =“id”也可以触发一堆其他IE问题。

答案 1 :(得分:-1)

最好的办法是将所有id和类更改为每个通用标准的小写。这样你就不会应用任何创可贴修复。