2017-01-12 11 views
0

ユーザはや12345のような値を入力します。ユーザが入力すると0を無視します。jQueryオートコンプリート無視0

<input name="location" class="input-lg" style="width:100%;" id="location" type="text" size="50" placeholder="<?php echo $this->lang->line('inputhint');?>" /> 

$(function() { 
    var availableLocations = 
    <?php 
     // print the json array containing all zips 
     echo $locations; 
    ?> 

    $("#location").autocomplete({ 
     source: availableLocations, 
     minLength: 3, 
     focus: function (event, ui){ 
      $('#location').val(ui.item.value); 
      return false; 
     }, 
     select: function (event, ui){ 
      $('#location').val(ui.item.value); // display the selected text 
      $('#locationid').val(ui.item.key); // save selected id to hidden input 
      return false; 

     }, 
     change: function (event, ui){ 
      // write value to hidden field 
      $("#locationid").val(ui.item? ui.item.key : 0); 
      return false; 
     } 
    }); 
}); 

これを実行する方法はありますか?私はたくさんのことを試みましたが、私はそれを処理できません。何か案が?

+0

はい、あなたがソース関数を使用することができますが、request.termは、検索文字列が含まれています。 –

+0

Axelに感謝します。どうやってやるの。ソース:関数(イベント、UI){var zip = parseInt(ui.item.value); ...} – yab86

答えて

0

次はテストされていないが、それはこのようなものに動作します:

$("#location").autocomplete({ 
    source: function(request, response) { 
     // manipulate your search term 
     var yourTerm = parseInt(request.term); 
     // run a filter function on your data... 
     var filteredArray = $.map(availableLocations, function(item) { 
      // or whatever your matching rule is.... 
      if(item.startsWith(yourTerm)){ 
       return item; 
      } else{ 
       return null; 
      } 
     }); 
     // return the filtered values 
     response(filteredArray); 
    } 
}); 
関連する問題