0

我有三个输入字段,我想在输入数据时获取数据。虽然它工作正常,但它仍然在萤火虫中显示此错误。

希望会有更好的方法来做到这一点。

错误显示在 firbug 中:

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)"/>

和帮助???

注意:没有提交按钮

4

2 回答 2

1

除非您在其他范围内定义这些变量,否则它们尚未被声明。

使用 var 关键字在函数顶部声明它们。

var field_1a, field_2a, field_4a;
于 2012-10-03T07:46:52.163 回答
0

发生这种情况是因为您正在初始化field-#a永远不会执行的 if 语句,然后您尝试访问它们。我也有一种感觉,这些变量必须是函数的本地变量。尝试这个:

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");
               }
              });

        }
    }
于 2012-10-03T07:52:58.400 回答