无法获得房产'期权'未定义或空引用Javascript

时间:2017-09-06 04:59:13

标签: javascript asp.net

我是在asp.net中使用Javascript的新手,我对此代码有疑问。

 <asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem>item 1</asp:ListItem>
    <asp:ListItem>item 2</asp:ListItem>
    <asp:ListItem>item 3</asp:ListItem>
    <asp:ListItem>item 4</asp:ListItem>
    <asp:ListItem>item 5</asp:ListItem>
    <asp:ListItem></asp:ListItem>
</asp:DropDownList>

<script type="text/javascript">

    function setSelectedIndex(s, i) {

        s.value[i - 1].selected = true;

        return;

    }
    setSelectedIndex(document.getElementById("DropDownList1"), 5);
</script>

任何人都可以帮助我。

感谢。

3 个答案:

答案 0 :(得分:1)

这是DEMO。以下是您需要做的事情:

<select ID="DropDownList1">
  <option>item 1</option>
  <option>item 2</option>
  <option>item 3</option>
  <option>item 4</option>
  <option>item 5</option>
</select>

<script type="text/javascript">

    function setSelectedIndex(s, i) {
                console.log(s, i);
                s.selectedIndex = (i-1); 
        //s.value[i - 1].selected = true;

        return;

    }
    setSelectedIndex(document.getElementById("DropDownList1"), 5);
</script>

答案 1 :(得分:0)

您需要访问元素变量options上的s属性而不是值。

此外,如果它仍然无法正常工作,请确保浏览器上的元素ID DropDownList1也相同。在渲染时,它有一个健康的机会略微修改。在这种情况下,您应该通过其CSS类名称选择元素,或者尝试以某种方式将下拉列表(DropDownList1.ClientID)的客户端ID传递给您的JS代码。

&#13;
&#13;
function setSelectedIndex(s, i) {

  s.options[i - 1].selected = true;

  return;

}
setSelectedIndex(document.getElementById("DropDownList1"), 5);
&#13;
<select ID="DropDownList1" runat="server">
  <option>item 1</option>
  <option>item 2</option>
  <option>item 3</option>
  <option>item 4</option>
  <option>item 5</option>
  <option></option>
</select>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您也可以

document.getElementById("DropDownList1").selectedIndex = i -1 ;