可点击的自动填充功能,如谷歌

use*_*891 7 jquery autocomplete onclick jquery-autocomplete

我正在寻找没有"提交"按钮的自动完成功能,但是当用户点击自动完成关键字时,他会被重定向到另一个网址,我会选择

我正在使用http://dyve.net/jquery/?autocomplete,我想在这个脚本中实现,而不是使用任何其他(因为如果我在这个中输入ODE,他会显示CODE和ODESSA)

例:

用户输入"goo"然后为他显示GOOGLE,当他点击GOOGLE时脚本将他发送到www.google.com(如"Google"=>" http://www.google.com ")

如果我能用脚本我会告诉你们我不是程序员所以我需要,代码本身,我知道它太多要问但我尝试了一切= \

谢谢!


jUI自动完成的问题是我想这样做:

如果我键入" ODE "

它会显示"C ODE "和" ODE SSA"

不仅仅是从一开始,这就是为什么我试图在另一个中使用你的代码

另外,当我使用Russ和karim79的代码时,它没有用

kar*_*m79 10

我实现了类似的东西,但是,我的实现使用了jQuery UI Autocomplete.

我使用一个简单的技巧,从服务器返回的数据是由换行符"\n"分隔的一组字符串,每行都有一个格式为suggestion :: url的字符串.在客户端上,我只是在分隔符处拆分(我使用::)并从结果数组的第一个偏移量中提取建议,从第二个偏移量中提取URL.例:

    $("#search").autocomplete("/some/page", {
        selectFirst: false,
        formatItem: function(data, i, n, value) {
            //make the suggestion look nice
            return "<font color='#3399CC'>" + value.split("::")[0] + "</font>";
        },
        formatResult: function(data,value) {
            //only show the suggestions and not the URLs in the list
            return value.split("::")[0];
        }
    }).result(function(event, data, formatted) {
        //redirect to the URL in the string
        var pieces = formatted.split("::");
        window.location.href = pieces[1];
    });
Run Code Online (Sandbox Code Playgroud)

为了澄清我的意思,假设你键入'goo'.服务器可能会返回:

google::www.google.com\ngoodstuff::www.example.com
Run Code Online (Sandbox Code Playgroud)

该用户将看到一个列表显示'google'和'goodstuff'.单击其中一个将执行result自动完成方法,我只需获取字符串的URL部分并重定向.希望有所帮助.

  • 你不能返回JSON然后你可以跳过丑陋的字符串拆分吗? (4认同)

Azi*_*ziz 2

“但即使是作者也不知道如何做到这一点”?

我认为通过调用 form.submit() 替换消息框警报(在示例页面中)可以轻松完成。不过我还没试过。

编辑: 这是一些使用http://dyve.net/jquery/?autocomplete的示例代码:

$("#mytextbox").autocomplete("form.php", {onItemSelect:submitTheForm});

function submitTheForm(){ 
     // redirect user to whatever URL
}
Run Code Online (Sandbox Code Playgroud)