Problem:
Chcę ustawić minimalną ilość znaków jaka jest wymagana do wpisania w polu tekstowym, aby pojawiła się podpowiedź.
Dotyczy:
Autocomplete, plugin jQuery. Wersja: 1.0.2.
Firefox 3.0.11, Opera 9.64.
Plugin można ściągnąć stąd:
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete.
Użyty kod:
a) HTML:
Wpisz nazwę: <input type="text" name="name" id="name" />
b) JavaScript:
$(document).ready(function(){
var data = "Toyota;Opel;Fiat;Chrysler;Jaguar;
Dodge;Peugeot;Nissan".split(";");
$("#name").autocomplete(data, {minChars: 3});
});
Śledztwo:
Fragmenty kodu źródłowego pluginu:
function request(term, success, failure) var data = cache.load(term);
zmienna data ma wartość null
function load(q) var c = data[q.substr(0, i)];
zmienna c ma wartość null
Przykład:
Wpisuję w polu tekstowym ciąg znaków toyot i gdy opcja minChars ma wartość 3 fragment q.substr(0, i) przyjmie w pętli takie wartości:
- toyo
- toy
zaś data['toyo'] i data['toy'] ma wartość null. Co ciekawe data['t'] zwraca wartość różną od null.
Rozwiązanie:
Modyfikacja kodu źródłowego pluginu polegająca na zmianie linii:
for (var i = q.length - 1; i >= options.minChars; i--) {
na linię:
for (var i = q.length - 1; i >= 1; i--) {
Zostaw odpowiedź
Używamy Gravatara w komentarzach - zdobądź swój własny!
XHTML: Możesz użyć następujące tagi:
<a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>