【问题标题】:How to get the selected value from ajax.net ComboBox through javascript如何通过javascript从ajax.net ComboBox获取选定的值
【发布时间】:2010-05-28 17:37:24
【问题描述】:

我需要通过 javascript 从 ajax.net 组合框中获取选定的值,以便进行一些客户端验证。

最好的方法是什么? 谢谢,


我已经能够通过这个获得价值:

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?

【问题讨论】:

    标签: javascript combobox ajax.net


    【解决方案1】:

    你可以使用 jQuery 或者只使用 DOM:

    jQuery:

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

    DOM:

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

    asp.net -> 服务器端

    javascript -> 客户端

    【讨论】:

    • 谢谢,但您的解决方案不起作用。 ajaxtoolkit 的组合框由 3 个输入组成。我无法获得它的价值。
    【解决方案2】:

    我认为答案是客户端不存在值,因此无法检索。有更简单的方法来获取索引(假设任何初始化都已完成)。

    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" ...
    

    【讨论】:

      【解决方案3】:

      这(今天)在 IE 和 Chrome 中有效 - 关于 ie 唯一的好处是调试器 f12(- 你可以浏览被监视的对象

      下列的 // 我在按钮上做,但你可以在组合事件上做 跟随
       function addFollowed() {
            var combo = $get('<%= FollowListBox.ClientID %>'); 
            var toFollow = combo.control._textBoxControl.value;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多