为啥 jQuery 自动完成输入与 runat 中断?

Posted

技术标签:

【中文标题】为啥 jQuery 自动完成输入与 runat 中断?【英文标题】:Why does jQuery autocomplete input break with runat?为什么 jQuery 自动完成输入与 runat 中断? 【发布时间】:2019-09-07 16:46:20 【问题描述】:

我正在尝试在我的 Asp.Net Web 应用程序中使用简单的 jQuery 自动完成输入:

Summary.aspx

 <script type="text/javascript">
    $(function () 
        var cityList = <%= new JavaScriptSerializer().Serialize(ViewState["Cities"]) %>;
        $( "#uxCities" ).autocomplete(
            //source: availableTags
            source: cityList
        );
    );
</script>
...
<div class="ui-widget">
  <asp:Label for="Cities">City </asp:Label>
  <input id="Cities">
</div>

此解决方案在客户端运行良好。但是,我还需要获取用户在.cs/C# 文件的输入中输入的任何值/文本。当我将runat="server" 添加到&lt;input id="Cities"&gt; 时,jQuery 会中断。此外,input 似乎没有一个属性可以让我像 texbox 一样抓取用户输入的内容(例如:string userCity = uxCities.Text;)。如何在客户端获得 jQuery 自动完成功能,但仍使用服务器端的输入值?

【问题讨论】:

【参考方案1】:

您需要像这样获取文本框的客户端 ID:

<input id="Cities" runway=“server” />

$('#<%=Cities.ClientID%>').autocomplete(..);

【讨论】:

好的,这行得通,但是没有属性runway 所以我把它改成了runat="server" 并且它起作用了。一个问题:我需要该输入框中的任何内容(用户选择或键入的任何内容)作为服务器端的输入参数。由于输入没有.Text 属性,我可以使用什么? 我相信你可以使用 Cities.Value

以上是关于为啥 jQuery 自动完成输入与 runat 中断?的主要内容,如果未能解决你的问题,请参考以下文章

知道为啥这个 Jquery 自动完成功能不起作用吗?

jQuery UI 自动完成 - 输入与结果集不匹配时不显示结果

为啥使用 jQuery 和 PHP 的多项选择自动完成功能不起作用?

为啥我的 jQuery 自动完成背景是透明的?

IE 事件传播与 jQuery 自动完成/jScrollPane 的行为不符

jquery自动完成asp.net Gridview中的多个文本框