$.ajaxSetup({ })取表单的数据不成功,为什么?

在学习jQuery的ajax遇到了问题:$.ajaxSetup({ })取表单的数据不成功。
代码如下:'

  <form> 
    user:<input type="text" name="user">
    email:<input type="text" name="email">
    <input type="button" value='提交'>    
  </form>

  <script type="text/javascript">
    $(function(){
    var to=$("form input[type=button]");
    $.ajaxSetup({
            type:'POST',
            url:"file/testAjax.php",
            data:$("form").serialize()
                });
    to.click(function(){
                $.ajax({
                    success:function(response,status,xhr){
                    alert(response);
                    }
                });
            });        
    })
</script>

testAjax.php:

<?php

echo $_POST['user'].' - '.$_POST['email'];

?>
图片描述


  • 截图显示取的数据为空。
  • 把ajaxSetup这块放在click函数里能取到数据,但是这样ajaxSetup就失去意义了。

小弟不才,请各位指教一下是什么原因。

阅读 2.3k
3 个回答

我觉得是页面刚加载完的时候,表单里面还没有数据填入呀,ajaxSetup拿到的是刚加载完页面的空值,应该等到click事件的时候取值才对。
还有,ajaxSetup应该用来设置一些不常变动的配置参数,比如请求type为POST,url等,如果data是会变动的,应该放到ajax方法里面。

不太适应这种分开的写法……也没明白为什么这么写……而且data那里需要click发生之后才会取到值吧?页面ready后应该啥也没有啊……

$("form").serialize() 中serialize()是对取到的值进行序列化,而你的代码很明显没有取值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题