1

我需要通过 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?

4

3 回答 3

0

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

jQuery:

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

DOM:

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

asp.net -> 服务器端

javascript -> 客户端

于 2010-05-28T17:45:08.310 回答
0

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

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" ...
于 2012-12-11T22:15:24.427 回答
0

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

跟随//我在按钮上执行此操作,但您可能可以在组合事件上执行此操作
 function addFollowed() {
      var combo = $get('<%= FollowListBox.ClientID %>'); 
      var toFollow = combo.control._textBoxControl.value;
于 2016-06-22T22:24:57.083 回答