2017-09-06 107 views
0

我是在asp.net中使用Javascript的新手,我对此代码存在问题。无法获取未定义或空引用的属性“选项”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> 

任何人都可以帮助我。

谢谢。

回答

0

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

另外,如果它仍然不起作用,请确保元素ID DropDownList1在浏览器上也是相同的。渲染时略有修改的可能性很大。在这种情况下,您应该通过CSS类名选择元素,或尝试将下拉列表(DropDownList1.ClientID)的客户端ID以某种方式传递给您的JS代码。

function setSelectedIndex(s, i) { 
 

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

 
    return; 
 

 
} 
 
setSelectedIndex(document.getElementById("DropDownList1"), 5);
<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>

0

你也可以做

document.getElementById("DropDownList1").selectedIndex = i -1 ; 
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> 
+0

有没有一种方法使用控制dropdownlist asp.net而不是选定的选项。 – user304567

+0

它是一样的。你只需要用我的代码更新你的JS代码。它会工作。如果您有任何问题,请告诉我。 –

+0

谢谢..我已经更新我的js与您的代码iam使用控制的Asp.net dropdownlist不是选定的选项,它有一个错误'无法设置属性'selectedIndex'的未定义或空引用'。 – user304567

相关问题