inputタグに入力した内容から候補表示を行うautocompleteを使っているのですが、inputタグ内に一度文字を入力した後に、候補表示される前に(success前に)文字列を削除してinputタグが空白となった場合には、一度投げたajax通信を途中で中断するようにしたいのですが、中断出来ません。
(候補が出力される前にinputタグを空白にした時点で、一度"error"がコンソール出力されて、そのまま待機していると再度"error"がコンソール出力されてしまいます。)
inputタグ内を空白にした時点でajax通信を完全に中断する方法を御教示下さい。
javascript
1 $(function(){ 2 var jqxhr; 3 $(document).keyup(function(){ 4 if($("#input").val()==""){ 5 if(jqxhr){ 6 jqxhr.abort(); 7 } 8 } 9 10 $("#input").autocomplete({ 11 source: function(req, resp){ 12 jqxhr = $.ajax({ 13 url: "autocomplete.php", 14 type: "POST", 15 cache: false, 16 dataType: "json", 17 data: { 18 name: req.term 19 }, 20 success: function(o){ 21 resp($.map(o, function(item) { 22 return { 23 label: item.name, 24 value: item.name 25 } 26 })); 27 }, 28 error: function(xhr, ts, err){ 29 //エラー時の処理 30 console.log("error"); 31 } 32 }); 33 }, 34 select: function(event, ui){ 35 //候補から選んだ時の処理 36 } 37 }); 38 }); 39 });
html
1<input id="input" type="text" name="name" value="">
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/31 09:15
2017/05/31 09:22
2017/06/01 01:48
2017/06/01 02:09
2017/06/01 02:50
2017/06/01 02:54
2017/06/01 03:08
2017/06/01 03:13
2017/06/01 03:16
2017/06/01 04:46
2017/06/01 05:25