Исходный параметр автозаполнения jQuery не обновляется - PullRequest
0 голосов
/ 28 декабря 2010

Я использую скрипт автозаполнения jQuery для элемента ввода текста, но проблема в том, что переменная lang в исходном URI не обновляется при обновлении переменной.

Обновляется значение langвсякий раз, когда я нажимаю на элемент радио-ввода, и после этого я набираю что-то в элементе ввода текста, который затем запускает код автозаполнения.Как ни странно, он всегда использует значение «en», а не обновленное значение.

Кто-нибудь знает лучший подход или исправление для моего кода?

code:

var lang = 'en';

$('input[name="language"]').click(function()
{
    lang= $(this).val();
});

$("#query").autocomplete({
    source: "domain.com/suggest.php?language=" + lang,
    minLength: 1
});

Ответы [ 3 ]

1 голос
/ 29 декабря 2010

Решение заключается в создании пользовательского вызова AJAX:

    source: function(request, response)
    {
        $.ajax({
            url: 'domain.com/suggest.php',
            dataType: "json",
            data: {language: $('input[name="language"]:checked').val(), term: $('#query').val()},
            success: response
        });
    },

Надеюсь, это поможет и другим.

1 голос
/ 28 декабря 2010

Событие click происходит, когда вы нажимаете на select, а не при изменении значений.Таким образом, lang, вероятно, переназначается на текущее значение select, которое, если оно английское, останется английским после изменения значения select.Что вы, вероятно, хотите сделать, это:

$('input[name="language"]').change(function()
{
    lang= $(this).val();
});
0 голосов
/ 07 ноября 2013

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

var lang = 'en';

$('input[name="language"]').click(function()
{
    lang= $(this).val();


$("#query").autocomplete({
    source: "domain.com/suggest.php?language=" + lang,
    minLength: 1
});

});
...