0

我有一行代码只能在大多数情况下工作

 $('[name=' + results.rows.item(i).id + ']').get(0).selectedIndex = selIndex;

由于某种原因,当我在 Internet Explorer 10 中运行它时,它没有正确地将所选索引更改为我提供的索引。就好像它正在被重置或根本没有改变。我在 chrome 中尝试了相同的代码,它 100% 的时间都可以正常工作。它是一个错误吗?

html 是使用 XSLT 模板构建的,因此所有 value 属性都设置为相同

<!-- dropdown input template -->
<xsl:template match="DataField[@ControlType='DropDown']" priority="1">
<td colspan="{DisplayOptions/@ColSpan}" location="{DisplayOptions/@Column}">
  <div class="divider">
    <xsl:value-of select="FieldOptions/@DisplayName "/>
  </div>
  <div class="divider">
    <select name="userInput_{@Name}" class="dropbox" select="">
      <option>
        <xsl:value-of select="FieldOptions/@LookupType"/>
      </option>
    </select>
  </div>

  <xsl:apply-templates select="SubDataFields"/>
</td>

更新 3 这是JSFIDDLE。它似乎在那里工作正常?虽然它不是完全相同的代码,但它足够相似。我认为这与渲染早或晚有关?

更新 2 我注意到,当我调试时,我抛出了一个 jquery 异常

Exception was thrown at line 4224, column 4 in http://localhost:50297/Scripts/jquery-1.9.1.js
Exception was thrown at line 4242, column 4 in http://localhost:50297/Scripts/jquery-1.9.1.js

我想知道这是否是导致代码不起作用的原因。当我仅在 IE10 中在其他浏览器中进行调试时,该错误不会显示。

更新 这个问题曾经发生在 Safari 和 Opera 中,但是在我托管在我的服务器上之后,一切正常。直到我在 IE10 上试用它。现在它做同样的事情,如果我刷新选定的索引将更改为 -1。我检查了之前的值,它是 0 并且我分配的值是正确的,但是在分配之后它会改变任何想法吗?

4

0 回答 0