7

「送信」ボタンのないオートコンプリートを探していますが、ユーザーがオートコンプリートキーワードをクリックすると、別のURLにリダイレクトされ、それを選択します。

http://dyve.net/jquery/?autocompleteを使用していて、このスクリプトで実装したいのですが、他のスクリプトは使用しません(これにODEと入力すると、CODEとODESSAが表示されるため)

例:

ユーザーが「goo」と入力すると、GOOGLEが表示され、GOOGLEをクリックすると、スクリプトが彼をwww.google.com( "Google" => " http://www.google.com "など)に送信します。

私はプログラマーではないので、コード自体が必要だと言ったスクリプトでうまくいくといいのですが、質問するのは多すぎることを知っていますが、すべてを試しました= \

ありがとう!


jUIオートコンプリートの問題は、これを実行したいということです。

ODE」と入力すると

「 CODE」と「ODESSA」が表示されます

最初からだけでなく、それが私があなたのコードを他のコードで使用しようとしている理由です

また、Russとkarim79のコードを使用した場合、機能しませんでした

4

6 に答える 6

10

私はそのようなものを実装しましたが、私の実装はjQueryUIオートコンプリートを利用しています。

サーバーから返されるデータが改行文字「\n」で区切られた文字列のセットであるという単純なトリックを使用します。各行には、suggestion::urlという形式の文字列があります。クライアントでは、セパレーターで分割し(::を使用)、結果の配列の最初のオフセットから提案を抽出し、2番目の配列から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];
    });

私が何を意味するのかを明確にするために、「goo」と入力するとします。サーバーは次を返す可能性があります。

google::www.google.com\ngoodstuff::www.example.com

そのユーザーには、「google」と「goodstuff」のリストが表示されます。それらの1つをクリックするとresult、オートコンプリートのメソッドが実行されます。ここでは、文字列のURL部分を取得してリダイレクトします。お役に立てば幸いです。

于 2009-09-01T22:13:16.010 に答える
3

オートコンプリート検索を作成する方法の完全なウォークスルーは次のとおりです。

基本的に、呼び出すにはイベントハンドラーが必要です

window.location.href = "your-url-string.com";

Enterキーを押すか、選択範囲をクリックします。

編集:

オートコンプリートドキュメントから

検索ページ置換

オートコンプリートプラグインを使用して、用語を検索し、結果のアイテムに関連付けられているページにリダイレクトできます。以下は、リダイレクトを実現する1つの方法です。

var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];
$("...").autocomplete(data, {
  formatItem: function(item) {
    return item.text;
  }
}).result(function(event, item) {
  location.href = item.url; // navigate to the chosen URL
});
于 2009-09-01T22:09:20.933 に答える
2

「しかし、作者でさえこれを作る方法を知らない」??

メッセージボックスアラート(例のページ)をform.submit()の呼び出しに置き換えることで簡単に実行できると思います。しかし、私はそれを試していません。

編集:http: //dyve.net/jquery/?autocomplete を使用したサンプルコードを次に示します。

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

function submitTheForm(){ 
     // redirect user to whatever URL
}
于 2009-09-01T22:06:40.207 に答える
1

次のコードは、リモートデータソース(MySQLデータベース)のデータを含む検索ボックスを検索フィールドに変換し、ユーザーが提案された結果の1つを選択した場合にリダイレクターに変換するためにうまく機能します。

$("#search").autocomplete("search.php", {
    width: 260,
    formatItem: function(data) {
            return data[0];
          }
        }).result(function(event, data) {
     window.location.href = data[1];
});

注:ajaxデータを2つの部分に分割する必要がありました:

  1. 検索語
  2. その用語に関連するURL

例えば。

ブラッド・ピット| / actors / bradpitt

マット・デイモン| /actors/mattdamon

jQueryオートコンプリートは、パイプ(|)と改行ごとにデータを自動的に分離します

于 2010-11-07T13:12:34.370 に答える
0

jQueryオートコンプリートプラグインには、結果内を検索するmatchContainsオプションがあります。trueに設定すると、部分文字列の一致も返されます。

于 2010-02-19T07:43:13.993 に答える