2015-06-02 28 views
0

我在我的應用程序中寫了一個jQuery自動完成代碼,它可以正常工作,但現在我只希望它在到達minimum length後自動完成,例如, minlength=2和if條件if((('#id').val())>minlength) 我嘗試下面的代碼如何修改大於指定長度的字符的JQuery自動完成?

var minlength = 2; 
 

 
$(document).ready(function() { 
 
    var text = $('#patient_id').val(); 
 
    $('#patient_id').autocomplete({ 
 
     //var text = $(this).val(); 
 
     if(text > minlength){ 
 
     source: function(request, response) { 
 
      $.ajax({ 
 
       url : 'ipdpatientajax.php', 
 
       dataType: "json", 
 
       data: { 
 
        name_startsWith: request.term, 
 
        type: 'country_table', 
 
        row_num : 1 
 
       }, 
 
       success: function(data) { 
 
        response($.map(data, function(item) { 
 
         var code = item.split("|"); 
 
         return { 
 
          label: code[0], 
 
          value: code[0], 
 
          data : item 
 
         } 
 
        })); 
 
       } 
 
      }); 
 
     }, 
 
    autoFocus: true, \t  \t 
 
    minLength: 0, 
 
    select: function(event, ui) { 
 
     var names = ui.item.data.split("|"); 
 
     console.log(names[1], names[2], names[3]); \t \t \t \t \t \t 
 
     $('#patientAddress').val(names[1]); 
 
     $('#patientSex').val(names[2]); 
 
     $('#patientAge').val(names[3]); 
 
     $('#dateadmit_id').val(names[4]); 
 
     $('#datedischarge_id').val(names[5]); 
 
    \t \t 
 
     $("#patientAddress").attr("readonly", "readonly"); 
 
     $("#patientSex").attr("readonly", "readonly"); 
 
     $("#patientAge").attr("readonly", "readonly"); 
 
     $("#patient_id").attr("readonly", "readonly"); 
 
     $("#dateadmit_id").attr("readonly", "readonly"); 
 
     $("#datedischarge_id").attr("readonly", "readonly"); 
 
    } 
 
} \t 
 
}); 
 

 
/* other code continues.....}

,但是這給了我錯誤「Uncaught SyntaxError: Unexpected token >

回答

1

我現在不能測試的代碼,但在一見鍾情,你忘記了文本的長度。所以,如果從句應該是:

 if(text.length > minlength){ 

編輯:

而且你如果需要可以自動完成調用之前。現在它在選項的括號內。

此外,您必須跟蹤何時達到最小長度。您將需要一個onChange事件處理程序。

$('#patient_id').on('change', function() { 
    var text = $('#patient_id').val(); 
    if(text.length > minlength){ 
     //var text = $(this).val(); 
     $('#patient_id').autocomplete({ 
... 
})