2017-08-21 19 views
0

だから、私はこの要求を持っている最後のリクエストからの結果を示していますAjaxの検索ボックスは

あなたが「USB」を入力し、タイピング「鉛筆」で次のよう、それを削除した場合、それは最初にUSB結果が表示されます
var searchResults = new Array(); 

var ajaxRequest = function (value, type) { 
    if (typeof(type) === "undefined") 
     type = "default"; 
    var ajaxData = { 
     "title" : value, 
     "limit" : getLimit(), 
     "offset" : getOffset() 
    } 
    recentRequest = $.ajax({ 
     type : "GET", 
     url : getAjaxUrl(), 
     dataType : "json", 
     contentType : "application/json; charset=utf-8", 
     data : ajaxData, 
     beforeSend : function (data) 
     { 
      if (searchResults[value] != undefined) 
      { 
       (type === "pagination") ? ajaxSuccessPagination(searchResults[value], ajaxData) : ajaxSuccess(searchResults[value], ajaxData); 
       return false; 
      } 
     }, 
     success : function (data) { 
      searchResults[value] = (data); 
      (type === "pagination") ? ajaxSuccessPagination(data, ajaxData) : ajaxSuccess(data, ajaxData); 
     }, 
     error : function (data) { 
      ajaxError(data); 
     } 
    }); 
} 

あなたは鉛筆を塗りつぶしているので、結果が現在入力されている値と同じかどうかを確認するようにしたいと思います。誰でも助けてくれますか?

おかげ

私はまだ、これらはあなたが本当に欲しいものあるかはわからないけど、とにかく
+0

あなたが入力フィールド –

+0

@JPKimのからkeyupイベントにとのAJAX呼び出しをバインドすることができ、私はそうだとすれば、それは最初の要求を中止することを前にこれを持っていましたあなたはバックスペースを押しましたが、もちろんこれは行く方法ではありません。結果がユーザー入力に関係するかどうかを確認したい場合は – Niickles

+0

@ニッキーズ、私はあなたが望むものを正しく理解しているかどうかはわかりません。入力中に結果を動的に表示するのではなく、入力が終わったときに結果を表示したいのですか?あなたは "検索"ボタンまたはjqueryのぼかしイベントでそれを行うことができますか、またはEnterキーを押します。 –

答えて

0

1)あなたが唯一の有効なキーワードの検索結果を表示したいキーワード辞書を(持っている場合) :

  • 場合、入力文字列が有効なキーワードであり、他の値を返す(のような「FALSE」または「有効でない」、通常の検索結果に区別できるもの)かどうかを検証するために、サーバ・ページ(getAjaxUrlを())を変更入力文字列が辞書にありません。
  • "keyup"イベントの場合、resultが "FALSE(または何か必要なもの)"であるかどうかをチェックし、そうであれば前の結果を保持するか、結果が "FALSE"でなければ検索結果を新しいものに置き換えます。

2)あなたは、キーワード辞書を持っていない、あなただけの空白の検索結果を避けたい場合:

  • チェックをAJAX検索結果が複数の行(または他の事あなたが含まれている場合データをチェックすることができます)、結果がない場合は前の結果を保持します。結果にn行以上が含まれている場合は、検索結果を置き換えます。
+0

ユーザー入力が表示されている商品と同じかどうかを確認したい結果を隠そうとしています。 – Niickles

+0

@Niickles、私は、事前に定義されたキーワード辞書がないか、項目名からそれらを抽出しない限り、あなたが望むものを達成することは非常に難しいと思います。 「鉛筆」が有効である間にキーワード「pen」が無効であることがわかりません。「usb」、「pencil」などの有効なキーワードが含まれている辞書がない場合は、 まず、独自の辞書(テーブル、テキストファイル、または任意の形式)を作成し、1)メソッドを実装します。 - アイテムデータに一致する辞書を最新の状態に保つ必要があります。 –

0

は、それが働いて得ることができ、おかげでとにかく

var ajaxRequest = function (value, type) { 
     if (typeof(type) === "undefined") 
      type = "default"; 
     var ajaxData = { 
      "title" : value, 
      "limit" : getLimit(), 
      "offset" : getOffset() 
     } 

     $.ajax({ 
      type : "GET", 
      url : getAjaxUrl(), 
      dataType : "json", 
      contentType : "application/json; charset=utf-8", 
      data : ajaxData, 
      beforeSend : function (data) 
      { 
       if (searchResults[value] != undefined) 
       { 
        (type === "pagination") ? ajaxSuccessPagination(searchResults[value], ajaxData) : ajaxSuccess(searchResults[value], ajaxData); 
        return false; 
       } 
      }, 
      success : function (data) { 

       searchResults[value] = (data); 
       if (document.getElementById('search').value == data.searched) 
       { 
        (type === "pagination") ? ajaxSuccessPagination(data, ajaxData) : ajaxSuccess(data, ajaxData); 
       } 

      }, 
      error : function (data) { 
       ajaxError(data); 
      } 
     }); 
    } 
関連する問題