<script src='http://localhost/jquery.js'></script>
<script>
function vote(){
jQuery.ajax({
type: "POST",
url: "http://localhost/a.php",
data: jQuery("form[id=vote]").serializeArray(),
dataType: "json",
cache: false,
success: function(json){
alert("感谢投票,投票成功");
}
});
alert($("#xx").val());
}
</script>
<form action="a.php" method='post' id="vote" onsubmit="vote();return false;">
<input type="text" id="xx" value="提交投x票" />
<input type="submit" name="submit" value="提交投票" />
</form>感谢投票,投票成功 这句不alert。请问哪里错了?

解决方案 »

  1.   

    如果 a.php 返回正确的json格式的话,以上代码是可以alert(感谢投票,投票成功)的
    查一下单独运行a.php有没有错误?
    数据是否递交了?jQuery("form[id=vote]").serializeArray()为空
      

  2.   

    跟a.php没关系。那个里面是正常的。现在关键就是jQuery("form[id=vote]").serializeArray() 为啥不提交。
      

  3.   

    jQuery("form[id=vote]").serializeArray()不应当为空啊
      

  4.   

    jQuery("form[id=vote]").serializeArray()是不空,你加个error函数,如果执行了error,那只能说你a.php有问题
      

  5.   

    但是我alert(jQuery("form[id=vote]").serializeArray())提示空。a.php只是放了一个简单的json输出“[]”
      

  6.   

    把name加上
    <input type="text" id="xx" name="xx" value="提交投x票" /> 
      

  7.   

    这样serializeArray不空了,但是还是不提示“感谢投票,投票成功”。为啥里面那段提交不成功?即使不用b.php,用一个最简单的html做接收程序,也不行的。
      

  8.   

    dataType: "json" 你确定你a.php返回的格式是json吗?不是的话把dataType: "json"去掉试下
      

  9.   

    曾经出现同样的问题,不过现在忘了,好久没用JQ了,如果我想起来再说吧.
    这样,建议装个IE8或FIREBUG(FIREFOX) DEBUG一下就知道了.程序似乎没错.
      

  10.   

    支持ls的 自己debug一下就知道了