5

問題はすべてです。私のjqueryオートコンプリートは、自分のapisからソースを取得します。一致するものが見つからない場合は、「一致するものが見つかりません」と返され、ドロップダウンに表示されます。ユーザーがこれに焦点を合わせると、ボックス内のテキストが「一致するものが見つかりません」に変わります。私がしたいことは、ドロップダウンに "一致するものは見つかりませんでした"と表示されますが、フォーカスが外れる/選択可能になります。見つかった一致が選択されていない場合は何もしないように機能:あなたが見ることができるように他のループが選択で「見つかりませ一致」をチェックする場合Jqueryオートコンプリート、一致するものが見つからない場合、ドロップダウンで「一致するものは見つかりませんでした」と表示されますが、フォーカスは許可されません。

$(document).ready(function() { 
    $("input#id_address").autocomplete({ 
     delay: 300, 
     minLength: 3, 
     source: function(request, response) { 
      $.getJSON("/pin/cache/", {q:encodeURI(request.term)}, function(results) { 
       res = results.results; 
       response($.map(res, function(item) { 
        return { 
         label: item.address, 
         value: item.address, 
         lat: parseFloat(item.lat), 
         lng: parseFloat(item.lng) 
        } 
       })); 
      }); 
     }, 
     select: function(event, ui) { 
      if (ui.item.value == 'no matches found') { 
       return; 
      } 
      else { 
       $("#id_address").val(ui.item.value); 
       var pos = new google.maps.LatLng(ui.item.lat, ui.item.lng); 
       map.setCenter(pos); 
       map.setZoom(14); 
       placeMarker(pos); 
      } 
     }, 
    }); 
}); 

は、私が使用しています:これが私の今のようにコードです。しかし、それはまだフォーカスの上に "一致するものが見つかりません"というテキストを入力します。一致するものが見つかると、フォーカスのあるテキストを埋め込むデフォルトの機能が必要ですが、一致するものが見つからない場合、ドロップダウンは焦点が合わないはずです。助言がありますか ?

答えて

2

可能な解決策の1つは、「一致するものが見つかりません」というテキストをチェックするイベントをセレクトのfocus()ハンドラに配置し、すぐにぼかしを行う場合です。あなたが「一致」を選択解除していないか、「一致」を選択することはできませんdivのシミュレートされたドロップリストを使用するJavaScriptイベントを使用することができますいずれか

$("input#ip_address").focus(function(){ 
    if($(this).text()=="no matches found") { 
     $(this).blur(); 
    } 
}); 
+0

ありがとう、これは完全に機能しました。 – tapan

関連する問題