我試圖根據是否從下拉列表中選擇一個值來啓用/禁用一個按鈕,由於某種原因,JavaScript沒有得到選定的索引下拉列表。這裏的下拉列表中的聲明:Javascript dropdownlist.selectedIndex在ASP.net頁面導致錯誤
<asp:DropDownList ID="ddlMyDropDownList" runat="server">
<asp:ListItem> </asp:ListItem>
<asp:ListItem>Yes</asp:ListItem>
<asp:ListItem>No</asp:ListItem>
</asp:DropDownList>
在後面我加入了onchange屬性代碼:
ddlMyDropDownList.Attributes.Add("onchange", "enableButton();")
這是enableButton功能是什麼樣子,剝離下來的部分這是造成問題的原因:
function enableButton() {
var ddl = document.getElementById('#<%= ddlMyDropDownList.ClientID %>');
alert("Testing");
var idx = ddl.selectedIndex;
};
正如寫入警報觸發,每當我更改下拉列表的值。但是,如果將警報移至idx行之後,則:
function enableButton() {
var ddl = document.getElementById('#<%= ddlMyDropDownList.ClientID %>');
var idx = ddl.selectedIndex;
alert("Testing");
};
它不會觸發,表明ddl.selectedIndex以某種方式導致錯誤。爲什麼會發生這種情況,我該如何補救?假設我只想測試用戶是否選擇了除第一個選項以外的任何其他選項,是否有更好/更簡單的方法來執行此操作?
您確定您正在獲取對ddl控件的引用嗎?如果var ddl爲空或未定義,則警報仍將觸發。也許你可以從那裏的斷點進入代碼,或者嘗試檢查一個不同的屬性。 – DOK 2012-02-01 14:18:15
如果你提醒ddl,你會得到什麼回報? – 2012-02-01 14:18:36