我有三个输入字段,我想在输入数据时获取数据。 虽然它工作正常但仍然在firebug中显示此错误。
希望有更好的方法来做到这一点。
错误显示在冷杉中:
ReferenceError: field_2a is not defined
[Break On This Error]
...ataString = 'field-1a='+ field_1a + '&field-2a=' + field_2a + '&field-4a=' + fie...
我的脚本如下:
<script>
function getFielddata(field_id, field_value){
if(field_value != ""){
//alert(field_id+" "+field_value);
if(field_id == "field-1a"){
if(field_value){
field_1a = field_value;
}
else
{
field_1a = "";
}
}
else if(field_id == "field-2a"){
if(field_value){
field_2a = field_value;
}
else
{
field_2a = "";
}
}
else if(field_id == "field-4a"){
if(field_value){
field_4a = field_value;
}
else
{
field_4a = "";
}
}
var dataString = 'field-1a='+ field_1a + '&field-2a=' + field_2a + '&field-4a=' + field_4a;
//alert(dataString); return false;
$.ajax({
type: 'POST',
url: 'get_query.php',
data: dataString,
success: function(data) {
//$("#SuburbDiv").html(data);
alert("data inserted successfully");
}
});
}
}
</script>
我正在保存onChange事件,如下所示:
<input type="text" id="field-2a" onChange="getFielddata(this.id, this.value)"/>
和帮助???
注意:没有提交按钮
答案 0 :(得分:1)
除非您在其他范围内定义这些变量,否则它们尚未声明。
使用var关键字在函数顶部声明它们。
var field_1a, field_2a, field_4a;
答案 1 :(得分:0)
这种情况正在发生,因为您正在初始化永不执行的if语句中的field-#a
,然后您尝试访问它们。我也有一种感觉,这些变量必须是函数的局部变量。试试这个:
function getFielddata(field_id, field_value){
if(field_value != ""){
var field_1a = "",
field_2a = "",
field_4a = "";
//alert(field_id+" "+field_value);
if((field_id == "field-1a")){
field_1a = field_value;
}
else if((field_id == "field-2a")){
field_2a = field_value;
}
else if((field_id == "field-4a")){
field_4a = field_value;
}
var dataString = 'field-1a='+ field_1a + '&field-2a=' + field_2a + '&field-4a=' + field_4a;
//alert(dataString); return false;
$.ajax({
type: 'POST',
url: 'get_query.php',
data: dataString,
success: function(data) {
//$("#SuburbDiv").html(data);
alert("data inserted successfully");
}
});
}
}