2016-07-13 12 views
0

私のアプリケーションのテキストボックスに作業中のオートコンプリート機能があります。提案が選択されると、アプリケーションはフォームを別のページ(製品カテゴリ)に投稿します。ユーザーはオートコンプリート候補にないものを入力してEnterキーを押すこともできます。この場合、アプリケーションはテキスト検索を実行します。しかし...Jqueryオートコンプリートは、入力時に同じメニュー項目を選択します。

ユーザーがオートコンプリートの候補と正確に一致するものを入力して[Enter]を押した場合でも、アプリケーションは適切なURLに移動します。オートコンプリート候補にアクセスして完全一致を検索するにはどうすればよいですか? DOMを1時間($(".searchTextBox").autocomplete("instance"))検索しましたが、「提案セット」に似ているものは見つかりませんでした。

+0

* "ユーザーがオートコンプリートの提案に一致するものを入力して" * "を入力すると、複数の提案があるときに何が起こるかns? –

+0

私は、「正確に」提案にマッチすることを意味しました。だから、誰かが「椅子」と入力した場合、正確に「椅子」であるものがあれば、その提案を検索したい。もしそうなら、提案の対応する値にリダイレクトしたい。正確に一致する提案が複数ある可能性はありません。 –

答えて

0

グローバルに宣言することで修正しました(私は知っていませんが、他にはどこですか?)。 onkeyupのテキストボックスに、次に

   success: function (data) { 
        autoCompleteResult = {}; 
        var d = data.d; 
        for (var i = 0, len = d.length; i < len; i++) { 
         var val = d[i].split(';'); 
         autoCompleteResult[val[0].toLowerCase()] = val[1]; 
        } 
        response($.map(data.d, function (item) { 
         return { 
          label: item.split(';')[0], 
          val: item.split(';')[1] 
         } 
        })) 
       }, 

:グローバル変数に辞書を格納し大成功に続いて

var autoCompleteResult = {}; 

if (autoCompleteResult !== null) { 
    if (sender.value !== '') { 
     var val = sender.value.toLowerCase(); 
     if (autoCompleteResult[val]) 
     { 
      setPostBackUrl(autoCompleteResult[val]); 
     } 
    } 
} 

それは魔法のように動作...

関連する問題