我正在使用jQuery自动完成脚本来处理文本输入元素,但问题是源URI中的lang变量在更新变量时不会更新。
每当我点击一个无线电输入元素时,就会更新lang的值,然后在文本输入元素中输入一些内容,然后触发自动完成代码。奇怪的是,它总是使用“en”值,而不是更新的值。
有没有人知道更好的方法或修复我的代码?
码
var lang = 'en';
$('input[name="language"]').click(function()
{
lang= $(this).val();
});
$("#query").autocomplete({
source: "domain.com/suggest.php?language=" + lang,
minLength: 1
});
答案 0 :(得分:1)
单击选择时发生单击事件,而不是更改值时发生。所以lang可能会被重新分配给select的当前值,如果它是英语,它将在更改选择值后保持英语。你可能想做的是:
$('input[name="language"]').change(function()
{
lang= $(this).val();
});
答案 1 :(得分:1)
解决方案是创建自定义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
});
},
希望这也有助于其他人。
答案 2 :(得分:0)
您应该在点击或更改功能中嵌入自动完成功能,这样每次选择其他单选按钮时,都会再次初始化自动完成功能:
var lang = 'en';
$('input[name="language"]').click(function()
{
lang= $(this).val();
$("#query").autocomplete({
source: "domain.com/suggest.php?language=" + lang,
minLength: 1
});
});