选择时jQuery自动完成触发器返回

Posted

技术标签:

【中文标题】选择时jQuery自动完成触发器返回【英文标题】:jQuery autocomplete trigger return on select 【发布时间】:2016-09-08 08:26:27 【问题描述】:

我搜索了很多地方,但我对 jquery 的理解不足以成功使用我找到的答案。

我需要双表返回来触发我的文本框 ontextchanged 事件,以便我的网格视图正在更新。

我的自动完成脚本运行正常,如下所示:

<script type="text/javascript" lang="ja">
    $(function () 
        $('#tbCompany').autocomplete(
            source: function (request, response) 
                $.ajax(
                    url: "Autocomplete.asmx/GetCompanyNames",
                    data: " 'searchTerm': '" + request.term + "' ",
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json;charset=utf-8",
                    success: function (result)                           
                        response(result.d);                            
                    ,                       
                    error: function (result) 
                        alert('There is a problem processing your request');
                    
                );
            ,
            minLength: 0
        );
    );
</script>


<asp:TextBox runat="server" ID="tbCompany" placeholder="Bitte Ausfüllen" ClientIDMode="static" OnTextChanged="tbCompany_TextChanged" Width="400px" Visible="false" TabIndex="1" />


 <asp:UpdatePanel runat="server">
      <ContentTemplate>
           <asp:GridView ID="gvVerzeichniss" runat="server" AutoGenerateColumns="false" OnRowCommand="gvVerzeichniss_RowCommand" CssClass="mGrid" AlternatingRowStyle-CssClass="alt" PagerStyle-CssClass="pgr" GridLines="None" ShowHeader="false" style="width: 1300px !important;">
                <Columns>
                        <asp:ButtonField ButtonType="Link" Text="view" CommandName="view" HeaderText="Show" Visible="true" ControlStyle-Width="40px" ControlStyle-ForeColor="#428bca"/>
                        <asp:CheckBoxField HeaderText="Active" ReadOnly="false" DataField="Active" ControlStyle-Width="10px" />
                </Columns>
            </asp:GridView>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="tbCompany"/>
        </Triggers>
  </asp:UpdatePanel>

它应该在选择一个项目时触发文本框的 ontextchanged 事件,但我不知道该怎么写。

【问题讨论】:

也分享你的html代码。 忘记了,编辑了。 【参考方案1】:

基本上,您在自动完成中发送 ajax 调用,而在从服务接收到数据后自动完成绑定。

您的result.d 必须有json 数据。

如果我理解正确,您正在寻找这样的东西

<script type="text/javascript" lang="ja">
    $(function ()  
          $.ajax(
                url: "Autocomplete.asmx/GetCompanyNames",
                data: " 'searchTerm': '" + request.term + "' ",
                type: "POST",
                dataType: "json",
                contentType: "application/json;charset=utf-8",
                success: function (result)                           
                  $('#'+'<%= tbCompany.ClientID %>').autocomplete(
                    source: result.d,
                    minLength: 0
                  );                        
                ,                       
                error: function (result) 
                    alert('There is a problem processing your request');
                
            );
    );
</script>

【讨论】:

result.d 后缺少 ',' 我已经更新了我的答案,请看。如果您使用的是经典的 asp.net,那么您需要选择像 $('#'+'&lt;%= tbCompany.ClientID %&gt;') 这样的元素。哪个括号? 啊,是的,我忘记了。添加。 :) 我添加了我的 gridview 代码,应该更新它在点 stll 不工作需要按回车 在更新面板&lt;asp:AsyncPostBackTrigger ControlID="tbCompany" EventName="TextChanged"/&gt;更改此行

以上是关于选择时jQuery自动完成触发器返回的主要内容,如果未能解决你的问题,请参考以下文章

未触发 JQuery 自动完成选择事件

自动选择单一匹配jQuery UI自动完成组合框

直到用户在输入字段之外单击才会触发自动完成 jQuery 更改

手动触发 jQuery 自动完成

Jquery UI 自动完成和 Ajax 倍数从成功返回

jQuery 自动完成源为空