2016-03-19 8 views
1

私はJQueryオート・オートコンプリート・アドバイスを使って通り入力フィールドを持っています。ユーザーが提案の1つを選択した後、彼は番号を入力する必要があります。次に数値ブラーでは、道路が提案に含まれている場合、関数は下の自動補完検索関数で検証します。はいの場合は、他の関数を呼び出す必要があります。 他の機能を呼び出せません。ここでプログラムで検索した後のJQueryオート・トリガー関数

は私のコードです:

$("#street").autocomplete({ 
    source: "street.php", 
minLength: 2,  
    search: function (event,ui) { 
      //Return to input field 
      if (ui.item==null) 
      { 
      alert("Please select a street.");   
      $("#street").focus(); 
      return; 
      } else{ 
       //call an outside function, 
       //does not work 
       address-search(); 
      }    
    } 
    }); 

は、この問題を解決するための助けを事前にありがとうございます。

答えて

1

私はあなたがそれを行うには、検索のコールバックが必要だと思う:ここ

$("#street").on("autocompletesearch", function(event, ui) { 
    if (ui.item === null) { 
     alert("Please select a street.");   
     $("#street").focus(); 
    } else { 
     address-search(); 
    } 
}); 

ドキュメント:http://api.jqueryui.com/autocomplete/#event-change

編集:

$(document).ready(function() { 
    var availableTags = [ 
    "1.Street", 
    "2.Street", 
    "3.Street" 
    ]; 
    $("#street") 
    .autocomplete({ 
     source: availableTags, 
     minLength: 2, 
    }) 
    .on("autocompletechange", function(event, ui) { 
     if (ui.item === null) { 
     alert("Please select a street."); 
     $("#street").focus(); 
     xhr.abort(); 
     } else { 
     address_search(); 
     } 
    }); 
    function address_search() { 
    alert($("#street").val()); 
    } 
}); 
:あなたの特定のコードに基づいて、私はあなたがこれをしたいと思います

更新日:https://jsfiddle.net/dupxj3mu/3/

+0

こんにちは、autocompletesearchは正しくチェックせず、誤った結果を引き起こします。 – user3260999

+0

問題が発生していることがわかるように、完全なコードかjsfiddleへのリンクがありますか? – tymothytym

+0

こんにちは、私のスクリプトで使用する場合、このコードは動作しますが、誤った入力の後でもあります。 https://jsfiddle.net/dupxj3mu/Jqueryを有効にできない可能性があります。ご協力ありがとうございました。 – user3260999

0

tハンク、私は自分のための解決策を見つけた。 https://jsfiddle.net/dupxj3mu/5/

function search_street() { 
    $("#street").on("autocompletechange", function(event, ui) { 
     if (ui.item === null) { 
     $("#hiddenstreet").val($("#street").val()); 
     $("#street").val(""); 
     return false; 
     } 
    }); 
    if ($("#street").val() === "") { 
     $("#street").val($("#hiddenstreet").val());  
     $("#street").focus(); 
     alert("Please select a street.");  
     $("#hiddenstreet").val(""); 
     return false; 
    } else { 
     address_search(); 
    } 
    } 

しかし、オートコンプリートのテストのみ(address_search再び一度実行)も、間違った通りの名前で呼ばれます。間違った入力で通り入力フィールドを空にし、通り入力が間違っていることをDIVに入れておきます。 address_search()は正しい選択時にのみ実行されます。

関連する問題