Ich habe eine Autocomplete-Eingabe, die beim Laden der Seite, wenn der Benutzer einen Wert eingibt, die Liste der Vorschläge füllt. Während der Benutzer diese Eingabefokuspunkte jedoch noch hat und den Text löscht, aber dann etwas anderes eingibt, passiert nichts. Meine Theorie ist, dass es etwas damit zu tun hat, wo die Hauptmethode aufgerufen wird - beim Laden von Dokumenten. Ich habe versucht, die Funktion zu ändern, die die Länge dieser Eingabe beobachtete, aber immer noch das gleiche Problem hatte. Wie auch immer, hier ist der Code:JQuery Autocomplete Textbox Verhaltensprobleme
Haupt Aufruf:
$(document)
.ready(function() {
$('#autocompleteCR')
.change(function() {
if ($('#autocompleteCR').val().length > 0) {
autoCompleteCheckRun();
}
});
});
Funktion Körper:
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);
}
});
};
Der Blick
<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>
Haben Sie nach dem Löschen des Textes im Eingabefeld überprüft, ob ein JavaScript-Fehler in der Browserkonsole vorliegt? –