jQuery plugin: Autocomplete – problem z opcją minChars

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--) {
0 komentarzy

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>