代码之家  ›  专栏  ›  技术社区  ›  pavsaund

使用jquery自动完成插件时,在选择后保留searchfield值

  •  0
  • pavsaund  · 技术社区  · 16 年前

    我用的是J_¶RN Zaefferres autocomplete plugin for jQuery 启用Live Search字段,效果很好。用户输入被发送到搜索服务,该服务以JSON格式返回格式化结果。选择结果后,值将输入到单独的表中。

    我遇到的问题是:在用户从下拉列表中选择搜索结果后,我不希望搜索(用户输入的参数)被结果覆盖。这是默认行为。

    我正在寻找一个可以用来禁用它的选项,如果它不存在的话,我可能需要寻找一个解决方法/不同的插件。

    以下是我当前使用的带有选项的自动完成插件:

    $('#searchInput').autocomplete('searchUrl',
        {
            dataType: 'json',
            parse: function(data) {
                //logic to parse search results that are returned from search
                return datarows;
            },
            formatItem: function(row, i, max) {
                return row.Description;
            },
            width: 500,
            highlight: false,
            multiple: false,
            minChars: 2,
            delay: 800,
            selectFirst: false,
            autoFill: false,
            cacheLength: 10 
        })
        .result(function(event, item) {
            //logic to handle item chosen by the user
        });
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Kaze no Koe    16 年前

    您需要的不是自动完成函数,因此自动完成插件无法工作。你必须修改插件,这样它就不会覆盖结果。我正在查看它,以了解您需要做哪些更改,并将在不久后添加我建议的解决方案。


    工作中出了点事,所以我得快点。

    在插件中,通过$input.val()函数修改输入值。当一个参数传递给它时,如下所示:

    $input.val('test')
    

    在本例中,输入的内容将更改为“测试”。你得把那些台词删掉。请注意,调用$input.val()只返回值,而不更改它,因此您希望离开 那些 单独行。

    我发现的一对:

    在线233,评论

    $input.val(v);
    

    在线297,评论

    $input.val($input.val() + sValue.substring(lastWord(previousValue).length));
    

    当然还有更多。 根据我所看到的,我希望在隐藏菜单的函数中至少找到一个。使用编辑器的搜索功能。

    这可能会破坏插件,也可能不会破坏插件,您必须先注释掉这些行,然后再调试它。

    希望我能帮上忙,祝你好运:)