【问题标题】:jquery autocomplete keypress databasejquery自动完成按键数据库
【发布时间】:2009-06-23 20:16:18
【问题描述】:

我正在尝试使用 jquery 自动完成插件,我希望它建议 ItemCodes 作为用户类型...

问题是它没有显示自动完成框/框架/....

为了确保 webmethod 在每个 keyup 事件上返回数据,我将数据分配给了一个 div 元素,它可以正常工作。

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        var strItmCodes;

        $("#txtItmCode").keyup(function() {
            var search;
            search = $("#txtItmCode").val();

            if (search.length > 0) {
                $.ajax({
                    type: "POST",
                    url: "Journal.aspx/loadData",
                    contentType: "application/json; charset=utf-8",
                    data: "{'Like':'" + $('#txtItmCode').val() + "'}",
                    dataType: "json",
                    success: function(retval) {
                        strItmCodes = retval.d.split("|");

                        $("#txtItmCode").autocomplete(strItmCodes);
                        $("#suggest").html(retval.d); //elemet 'suggest' is a div
                    }
                });
            }
        });
    });
</script>

修改

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        //$("#txtItmCode").autocomplete({url: "Journal.aspx/loadData" });

        $("#txtItmCode").keyup(function() {
            $("#txtItmCode").autocomplete({url: "Journal.aspx/loadData" });
        });
    });
</script>

【问题讨论】:

    标签: jquery plugins autocomplete


    【解决方案1】:

    我认为您应该在第一次按键之前启用自动完成插件,然后插件将添加事件处理程序。

    假设您使用原始的autocomplete 插件:

    $("#txtItmCode").autocomplete({url: "Journal.aspx/loadData"});
    

    并确保您的服务可以回复插件格式化的 GET 请求。

    【讨论】:

    • 感谢您回复 solsson!是的,我使用的是原始的自动完成插件,我尝试在第一次按键之前启用自动完成插件。 var strItmCodes; strItmCodes = "选择"; $("#txtItmCode").autocomplete(strItmCodes); $("#txtItmCode").keyup(function(strItmCodes) {... 但是还是不行。您还建议确保服务(Webmethod)可以回复GET请求,如何?
    • 安装 Firebug 或 LiveHTTPHeaders 以查看自动完成插件发送的请求
    • 我编辑了上面的帖子,并为自动完成插件添加了正确的选项参数。
    • 不要自己添加任何事件处理程序。只需 $("#txtItmCode").autocomplete("Journal.aspx/loadData");后端必须响应查询 Journal.aspx/loadData?q=[currentvalue]&limit=150&timestamp=1245666452263 的文本/纯文本响应,条目以换行符分隔(无 json 或任何内容)
    • 你好 Solsson,很多问题 1) 如何让后端 (sql server) 响应用换行符分隔的条目(没有 json 或任何东西)。 2)$("#txtItmCode").autocomplete({url:"Journal.aspx/loadData"});根本行不通。
    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 2018-12-31
    • 2014-10-22
    • 2014-10-22
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    相关资源
    最近更新 更多