добавление строки вместе в аргументе опции jQuery - PullRequest
0 голосов
/ 17 февраля 2011

Я пишу автозаполнение формы с несколькими типами данных.

В HTML типы данных разделяются с помощью атрибута ключа:

<input type="text" name="data0" value="" size="20" id="data0" key="country"/>
<input type="text" name="data1" value="" size="20" id="data1" key="state"/>

В файле js я запускаю селектор подстановочных знаков при вводе и использую автозаполнение следующим образом:

$(function() {
$(":input").autocomplete({
    source: "query.php?type="+$(this).attr("key")+"&mode=1",
    minLength: 2
});
});

Но это не работает.

Мне стало интересно, связано ли это с селектором .attr (), поэтому я написал другой код для его проверки:

var test="state";
$(function() {
$(":input").autocomplete({
    source: "query.php?type="+test+"&mode=1",
    minLength: 2
});
});

тоже не работает.

Заранее спасибо за помощь!

редактирование:

$(function() {
$(":input").autocomplete({
    source: "query.php?type=state&mode=1",
    minLength: 2
});
});

это будет работать. Поэтому я уверен, что это не проблема селектора.

1 Ответ

1 голос
/ 17 февраля 2011
$(function() {
$(":input").autocomplete({
    source: "query.php?type="+$(this).attr("key")+"&mode=1",
    minLength: 2
});
});

не будет работать, потому что this не указывает на то, что вы думаете, что он делает. Вы могли бы сделать что-то вроде этого ...

$(":input").each(function() {
   $(this).autocomplete({
    source: "query.php?type="+encodeURIComponent($(this).attr("key"))+"&mode=1",
    minLength: 2
   });
});

Вы также должны закодировать параметр выше, как я сделал для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...