2016-10-14 23 views
0

我有一個自動完成輸入,該網頁上的負載,當用戶輸入一個值,建議列表填充。但是,雖然用戶仍然擁有該輸入焦點,並且他們刪除了文本,但輸入了其他內容,則什麼都不會發生。 我的理論是,它的東西做的主要方法被調用,其中 - 在文檔加載。我試圖改變觀察輸入長度的功能,但仍然存在相同的問題。總之,這裏的代碼:JQuery的自動完成文本框的行爲發出

主要電話:

$(document) 
.ready(function() { 
    $('#autocompleteCR') 
     .change(function() { 
      if ($('#autocompleteCR').val().length > 0) { 
       autoCompleteCheckRun(); 
      } 
     }); 
}); 

函數體:

function autoCompleteCheckRun() { 
$('#autocompleteCR') 
    .autocomplete({ 
     minLength: 2, 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: './PayInvoicesWS.asmx/GetCheckRun', 
       data: "{'description':'" + document.getElementById('autocompleteCR').value + "'}", 
       dataType: "json", 
       success: function (data) { 

        var el = data.d; 
        response($.map(el, 
         function (el) { 
          return { 
           label: "CheckRunID:" + " " + el.CheckRunID + " " + el.Description, 
           value: el.CheckRunID 
          } 
         })); 
        calculateTotal(); 
        doStep2(); 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
     }, 
     select: function (event, ui) { 

      $("#CheckRunDescription").val(ui.item.label); 
      $("#autocompleteCR").val(ui.item.value); 
      $("#vendor_payment_type").prop("disabled", false); 

     } 


    }); 

};

視圖

<div class="divTableCell"> 
        <div class="ui-widget"> 
         <label for="autocompleteCR" id="checkRunLabel" style="font-size: 0.8em !important;">Check Run Lookup:</label> 
         <input type="text" id="autocompleteCR" /> 
        </div> 

       </div> 
+0

您是否在刪除輸入字段中的文本後檢查瀏覽器控制檯中是否存在javascript錯誤? –

回答

1

你並不需要在輸入的變化情況,每次申請自動完成。

將檢查在變化事件進行「$('#autocompleteCR').val().length > 0」將被自動填充的minLength屬性得到滿足。

你只需要在文件準備申請自動完成。這可能會解決您的問題。

$(document).ready(function() { 
    $('#autocompleteCR').autocomplete({ 
     minLength: 2, 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: './PayInvoicesWS.asmx/GetCheckRun', 
       data: "{'description':'" + document.getElementById('autocompleteCR').value + "'}", 
       dataType: "json", 
       success: function (data) { 
         var el = data.d; 
         response($.map(el, 
         function (el) { 
         return { 
          label: "CheckRunID:" + " " + el.CheckRunID + " " + el.Description, 
          value: el.CheckRunID 
         } 
        })); 
        calculateTotal(); 
        doStep2(); 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
     }, 
     select: function (event, ui) { 
      $("#CheckRunDescription").val(ui.item.label); 
      $("#autocompleteCR").val(ui.item.value); 
      $("#vendor_payment_type").prop("disabled", false); 
     } 
    }); 
}); 
+0

你說得對。一旦我刪除它,它開始按預期行事。謝謝! – Crumblenautjs