JS函数之间的变量作用域:变量未定义
问题描述:
我正在使用jQuery get脚本函数将信息发送到另一个页面,并将数据作为当前页面上的警报返回。我试图从输入表单(此工作)发送搜索字段值,以及收集器ID,这是通过在搜索表单上方的下拉菜单中选择的选项生成的值。JS函数之间的变量作用域:变量未定义
不幸的是,当我运行脚本时,我总是收到“collector_id是未定义的错误”。我想我有一个变量的范围问题..但尝试了很多选择,似乎无法找到解决方案,它保留collector_id的值在get函数中使用。
$(document).ready(function() {
$(".search-field").keyup(function() {
//THIS FUNCTION UPDATES THE COLLECTOR ID VARIABLE FROM DROPDOWN MENU VALUE SELECTED BY USER
$("select")
.change(function() {
var collector_id = "";
$("select option:selected").each(function() {
collector_id += $(this).data('value') + " ";
});
})
.change();
//THIS FUNCTION DOES A SEARCH ON ANOTHER PHP SCRIPT PASSING search and collector_id values
if($(".search-field").val().length > 3) {
var search = $(".search-field").val();
$.get("query-include.php" , {search: search, collector_id: collector_id})
.done(function(data) {
alert("Data Loaded: " + data);
});
}
});
});
答
你只需要改变之外初始化collector_id,所以这将是在范围为$不用彷徨
var collector_id = "";
$("select")
.change(function() {
$("select option:selected").each(function() {
collector_id += $(this).data('value') + " ";
});
})
.change();
//THIS FUNCTION DOES A SEARCH ON ANOTHER PHP SCRIPT PASSING search and collector_id values
if($(".search-field").val().length > 3) {
var search = $(".search-field").val();
$.get("query-include.php" , {search: search, collector_id: collector_id})
.done(function(data) {
alert("Data Loaded: " + data);
});
}
});
+0
谢谢!现在工作。 –
请解决您的intendation。推断未正确缩进的代码几乎是不可能的。 – Tomalak
'collector_id'是一个变量,作用于'change'处理程序。在其他地方没有定义'collector_id'。 –