2012-02-16 34 views
1

請原諒,在ASP中工作不是我的本地環境。我有一個ComboBox在頁面加載期間填充ListItems。當用戶選擇其中一個條目時,我需要從所選項目值中獲取信息,但是我嘗試過的每個事件都沒有做任何事情。如何將javascript函數添加到使用ASP的事件中:ComboBox

我能做些什麼來使選定的索引更改來激發我的Javascript?

控制:<asp:ComboBox ID="cboFighterGym" name="cboFighterGym" runat="server" AutoPostBack="False" DropDownStyle="DropDownList" AutoCompleteMode="SuggestAppend" CaseSensitive="False" ItemInsertLocation="Append" onchange="hello();" ClientIDMode="Static" > </asp:ComboBox>

var sel = document.getElementById("cboFighterGym"); 
     alert(sel.toString()); // This outputs [object HTMLDivElement] 
     sel.onchange = function() { 
      alert("Selected value: " + this.value); // This never happens 
     }; 

當我運行它的部分看起來是這樣的:

<div id="cboFighterGym" name="cboFighterGym" onchange="hello();" onFocus="alert(&#39;Hello&#39;)" style="display:inline-block;"> 
<table id="Table" class="ajax__combobox_inputcontainer" cellspacing="0" cellpadding="0" style="border-width:0px;border-style:None;border-collapse:collapse;display:inline-block;position:relative;top:5px;"> 
    <tr> 
     <td class="ajax__combobox_textboxcontainer"><input name="cboFighterGym$TextBox" type="text" id="TextBox" autocomplete="off" /></td><td class="ajax__combobox_buttoncontainer"><button id="Button" type="button" style="visibility:hidden;"></button></td> 
    </tr> 
</table><ul id="OptionList" class="ajax__combobox_itemlist" style="display:none;visibility:hidden;"> 
    <li>Select a Gym</li><li>Other</li><li>555 555, Oregon</li> 

</ul><input type="hidden" name="cboFighterGym$HiddenField" id="HiddenField" value="0" /> 

+0

是否使用來自鏈接組合框或ASP.NET的Ajax控件工具包的人嗎? http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ComboBox/ComboBox.aspx – 2012-02-16 22:43:09

+0

是註冊程序集=「AjaxControlToolkit」命名空間=「AjaxControlToolkit」TagPrefix =「asp」 – Pyrodante 2012-02-16 22:46:35

回答

1

如果你使用asp.net 4,你可以利用新的ClientIDMode,爲您的下拉列表指定一個可預測的名稱,然後選擇它並訂閱JavaScript中的onchange事件

<asp:DropDownList runat="server" ID="selectId" ClientIDMode="Static" /> 

var sel = document.getElementById("selectId"); 
sel.onchange = function(){ 
    alert("Selected value: " + this.value); 
}; 

或者你可以給它一個獨特的類名,而且基本上做同樣的事情:

var sel = document.getElementsByClassName("uniqueClass")[0]; 
sel.onchange = function(){ 
    alert("Selected value: " + this.value); 
}; 
+0

JavaScript拋出「sel is nul」,儘管ID匹配 – Pyrodante 2012-02-16 21:58:46

+0

@Pyrodante - 我假設你把腳本放在'head'中?該dom可能還沒有準備好。用這段代碼將腳本塊移到文檔的** body的末尾** – 2012-02-16 22:02:46

+0

錯誤消失了,但現在它不再做任何事了。我把一個alert(sel.toString());並被輸出:[對象HTMLDivElement] – Pyrodante 2012-02-16 22:06:16

相關問題