Jquery适用于Safari,但不适用于Firefox 11

时间:2012-04-12 22:22:25

标签: jquery ajax json

我有一个js文件可以正常工作

$(document).ready( function() {
    $(".btn-save").click( function() {
        var1 = $("#var1").val();
        var2 = $("#var2").val();
        var3 = $("#var3").val();
        var4 = $("#var4").val();
        var5 = $("#var5").val();

        $.post("json.test.php",
            {
                "var1" : var1,
                "var2" : var2,
                "var3" : var3,
                "var4" : var4,
                "var5" : var5
            },
            function(data)
            {
                if(data.type == "success") {
                    if(data.data == "saved") {
                     ...
                   }
                    self.close();
                }
                if(data.type == "error") {
                    alert("Error: " + data.message);
                }
            },
            "json"
        );

    });
});

它工作正常,脚本json.test.php接收所有5个变量

@$var_php = $_POST["var1"];

现在,我在表单中添加了另一个字段,我只是添加到javascript js程序

var6 = $("#var6").val(); 

并张贴为

"var5" : var5

在我做了这些更改之后,在Safari中程序json.test.php接收所有6个变量ok,但在Firefox 11中只接收前5个具有正确值的变量,但对于var6总是收到Null。

你知道为什么在Safari中工作正常,而不是在Firefox 11中。为什么在Firefox 11中前5个变量的工作正常但是如果我添加更多呢?

1 个答案:

答案 0 :(得分:0)

我无法在Firefox 11中重新生成错误,但序列化表单值可能是一种解决方法。当你处理表单输入时,至少这是一个更好的方法。

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready( function() {
    $("#myform").submit(function(event) {
        event.preventDefault(); //Prevents refreshing page on form submit
    $.post("test.php", $("#myform").serialize(),
       function(data) {
          $('#target').html(data);
       });
        });
    });
</script>
</head>
<body>
<form id="myform">
<input type="text" id="var1" name="var1" size="1" maxlength="1" />
<input type="text" id="var2" name="var2" size="1" maxlength="1" />
<input type="text" id="var3" name="var3" size="1" maxlength="1" />
<input type="text" id="var4" name="var4" size="1" maxlength="1" />
<input type="text" id="var5" name="var5" size="1" maxlength="1" />
<input type="text" id="var6" name="var6" size="1" maxlength="1" />
<input type="submit" value="Submit" />
</form>
<div id="target">
</div>
</body>
</html>

并且test.php:

<?php
for ($i=1; $i<=6; $i++){
   echo $_POST["var".$i];
} 
?>