为什么 jQuery 自动完成输入会因 runat 而中断?

Why does jQuery autocomplete input break with runat?

我正在尝试在我的 Asp.Net 网络应用程序中使用简单的 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# 文件中输入的任何内容 value/text。当我将 runat="server" 添加到 <input id="Cities"> 时,jQuery 中断。此外,input 似乎没有允许我像 texbox 一样抓取用户输入内容的属性(例如:string userCity = uxCities.Text;)。我怎样才能在客户端获得 jQuery 自动完成功能,但仍然利用服务器端的输入值?

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

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

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