2010-05-28 23 views
1

我需要從ajax.net組合框中通過JavaScript獲取選定的值,以便我可以執行一些客戶端驗證。如何從ajax.net組合框中通過javascript獲取選定的值

這樣做的最好方法是什麼? 謝謝,


我已經能夠用這個來獲取值:

var combo = $get('ddlComarcas'); 
var comboHidden = $get('ddlComarcas_HiddenField'); 
var o4 = combo.getElementsByTagName('li')[comboHidden.value].childNodes[0]; 

alert('"' + o4.data + '"'); 

但我仍然需要修剪從o4.data值。任何人都可以指出如何做到這一點Visual Studio 2008 jQuery?

回答

0

您可以使用jQuery或只使用DOM:

的jQuery:

var selection = $('#selectID').val(); 

DOM:

var selection = document.getElementById("selectID").value; 

asp.net - >服務器端

的JavaScript - >客戶端邊

+0

謝謝,但你的解決方案不起作用。 ajaxtoolkit的組合框由3個輸入組成。我無法得到這個價值。 – 2010-05-28 18:26:43

0

我認爲答案是價值不存在的客戶端,所以它不能被檢索。有更簡單的方法來獲取索引tho(假設任何初始化完成)。

selected index:   $find("<%=cboName.ClientID%>").get_hiddenFieldControl().value; 
selected index (again): $find("<%=cboName.ClientID%>").get_selectedIndex(); 
selected text:   $find("<%=cboName.ClientID%>").get_textBoxControl().value; 

據我所知,驗證客戶端上的組合框需要索引或文字,或某種形式的服務器端解決辦法的一些信心。

爲了提供一個直接回答主題行,JavaScript陣列可以創建服務器側與各組合框值和由選擇的索引引用然後客戶端...

代碼隱藏:

// write combobox values to asp:literal 
foreach (ListItem i in cboName.Items) 
     litCboValues.Text += "\"" + i.Value.Replace("\"", "\\\"") + "\", "; 
litCboValues.Text = litCboValues.Text.TrimEnd(new char[] {',', ' '}); 

ASPX:

<script> 
// array of values 
var cboValues = [ <asp:Literal id="litCboValues" runat="server" /> ]; 

// add an alert to the combobox to test 
function pageLoad() 
{ 
    $find("<%=cboName.ClientID%>").get_textBoxControl().onblur = function() { 
    alert(cboValues[$find("<%=cboName.ClientID%>").get_selectedIndex()]); 
    }; 
} 
</script> 


<asp:ComboBox id="cboName" runat="server" ... 
0

這工作(今天)在IE和Chrome - 的唯一的事情,即是良好的是調試器F12( - 您可以通過觀看objec瀏覽TS

繼 //我做的按鈕,但你也許可以做到這一點對一個組合事件 按照
function addFollowed() { 
     var combo = $get('<%= FollowListBox.ClientID %>'); 
     var toFollow = combo.control._textBoxControl.value; 
相關問題