Javascript 激活从下拉列表中选择选项的功能
我设计了一个自动完成功能,当一个人在一个文本框中输入至少3个字母时,它将通过几个火车站数据库中的一个来查找所有可能包含这三个(或更多)字母的车站 该功能运行良好,打开网页时,自动完成列表会显示正确的电台 但是,用于生成自动完成建议的数据库的选择是基于用户输入到页面上的droplist中 目前,所使用的数据库是基于页面加载时选择的选项(因此是顶部选项),我似乎无法让它随着用户输入的更改而更改 以下是代码的问题部分:Javascript 激活从下拉列表中选择选项的功能,javascript,jquery,Javascript,Jquery,我设计了一个自动完成功能,当一个人在一个文本框中输入至少3个字母时,它将通过几个火车站数据库中的一个来查找所有可能包含这三个(或更多)字母的车站 该功能运行良好,打开网页时,自动完成列表会显示正确的电台 但是,用于生成自动完成建议的数据库的选择是基于用户输入到页面上的droplist中 目前,所使用的数据库是基于页面加载时选择的选项(因此是顶部选项),我似乎无法让它随着用户输入的更改而更改 以下是代码的问题部分: $(function () { for(i=0;i<30;i++)
$(function () {
for(i=0;i<30;i++){
$("#_Q6_Q" + i + "_Q3_C").change(function(){
transportChange($("#_Q6_Q" + i +"_Q3_C").val(), i)
});
};
}
我可以告诉您,‘lst’参数被连接到一个链接中,然后该链接定义将使用哪个数据库
自动完成函数来自JQuery。忽略第一个for循环中缺少的
var
(从技术上讲,它将i
置于全局范围内),以及对30选择框上的更改事件应用回调函数的事实(正确吗?!)
看起来问题(至少是第一部分)在于回调共享相同的执行范围。这意味着在所有函数中,i
始终等于最后分配的值(30)
对这种行为的解释比我在这里所能做的要好得多:
所以。。。请按如下方式更新您的第一个代码块:
$(function(){
for(var i=0; i<30; i++){
$("#_Q6_Q"+ i +"_Q3_C").change(callbackFactory(i));
}
function callbackFactory(i){
return function(){
transportChange($("#_Q6_Q"+ i +"_Q3_C").val(), i);
};
}
// ...
});
$(函数(){
对于(var i=0;我如何使用jquery插件?我怀疑我是否能够将其输入到网页-工作政治。-以扩展并不迷惑任何人。我的公司做了很多实质上是美化的网页设计,但我们必须使用特定的模板。只有当客户要求我们超越时,我们才能做一些更奢侈的事情。谢谢你今晚帮了我很多忙!我不得不离开工作,所以我回来后会更新,但这很有意义。至于选择框,是的,有30个选择框,每个与3个文本框关联(这是调用自动完成功能的地方)选择框包含传输类型,因此定义了需要使用的数据库。我将在明天更新它是否有效。更改有效,现在数据库正在加载。虽然自动完成功能本身似乎已损坏,可能是由于再次关闭,但我不确定。
$(function(){
for(var i=0; i<30; i++){
$("#_Q6_Q"+ i +"_Q3_C").change(callbackFactory(i));
}
function callbackFactory(i){
return function(){
transportChange($("#_Q6_Q"+ i +"_Q3_C").val(), i);
};
}
// ...
});