如何获取jQuery Typeahead搜索中嵌套的asp:TextBox元素的值<;部门>;使用.NET

如何获取jQuery Typeahead搜索中嵌套的asp:TextBox元素的值<;部门>;使用.NET,jquery,vb.net,typeahead.js,typeahead,Jquery,Vb.net,Typeahead.js,Typeahead,我有以下标记 <div class="typeahead__container"> <div class="typeahead__field"> <span class="typeahead__query"> <asp:TextBox runat="server" ID="searchInputField" CssClass="js-typeahead" name="q" type="search"></a

我有以下标记

<div class="typeahead__container">
  <div class="typeahead__field">
    <span class="typeahead__query">
            <asp:TextBox runat="server" ID="searchInputField" CssClass="js-typeahead" name="q" type="search"></asp:TextBox>
        </span>
    <span class="typeahead__button">
            <button type="submit">
                <span class="typeahead__search-icon"></span>
    </button>
    </span>
  </div>
</div>
就我而言,这是行不通的

上面的代码是下面演示的示例Hockey v2的一部分

我假设无法获取文本值,因为结果不是文本框中的纯文本(请参见下图)

下图描述了文本值在HTML中的呈现方式。这些值存储在
元素中,因此

关于如何使用代码隐藏(或一般使用任何其他方法)获取文本值(Canadiens和Avalance)有何建议

更新-已解决 多亏了的建议,我使用一个
元素,通过使用Typehead的onSubmit回调,成功地将值传递到后端

callback: {
        onSubmit: function (node, form, items, event) {
         event.preventDefault();
         var searchValue = items.map(a => a.ID)
         document.getElementById("hiddenSearchResults").value = searchValue ;
         setTimeout(function () { __doPostBack(document.forms[0].name ); }, 1)
}
然后在后面的代码中,我得到如下值:

searchValues = hiddenSearchResults.Value

默认情况下,输入元素的呈现Id不是“searchInputField”-请在浏览器中查看页面源

但是,您可以将
clientdmode=“Static”
添加到控件的属性中,使其成为:

<asp:TextBox runat="server" ID="searchInputField" ClientIdMode="Static" CssClass="js-typeahead" name="q" type="search"></asp:TextBox>

然后jQuery将能够找到它


为了获得代码中的数据,我建议添加一个asp:hidden控件,并在按钮的JavaScript onclick事件中填充该控件。隐藏控件的值将在服务器端可用。

确实如此,但实际上问题仍然存在。如果我从
元素中创建第二个
,即使没有clientMode=“Static”声明,我也可以获取文本框的值。@Grigorioskouras我添加了一个关于如何将数据获取到服务器的建议。我仍然无法获取asp:TextBox的文本值。我很确定这个问题是由于打字机修改了文本框,以及这个库在输入控件中存储值的方式(在我的例子中是asp:textbox)造成的。我意识到这些值被存储到元素中,这些元素是由Typehead库的.js代码自动创建的。此外,如果我在完成搜索过程之前键入一些字符并按下“搜索”按钮,我就能够在后端获取文本(使用通常的方式)。typeahead代码是否具有返回值的功能?否则,您将需要从这些跨距中提取文本。这有意义吗?
<asp:TextBox runat="server" ID="searchInputField" ClientIdMode="Static" CssClass="js-typeahead" name="q" type="search"></asp:TextBox>