鍍金池/ 問(wèn)答/HTML/ $.ajaxSetup({ })取表單的數(shù)據(jù)不成功,為什么?

$.ajaxSetup({ })取表單的數(shù)據(jù)不成功,為什么?

在學(xué)習(xí)jQuery的ajax遇到了問(wèn)題:$.ajaxSetup({ })取表單的數(shù)據(jù)不成功。
代碼如下:'

  <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'];

?>
圖片描述


  • 截圖顯示取的數(shù)據(jù)為空。
  • 把a(bǔ)jaxSetup這塊放在click函數(shù)里能取到數(shù)據(jù),但是這樣ajaxSetup就失去意義了。

小弟不才,請(qǐng)各位指教一下是什么原因。

回答
編輯回答
寫榮

$("form").serialize() 中serialize()是對(duì)取到的值進(jìn)行序列化,而你的代碼很明顯沒(méi)有取值

2017年5月6日 01:46
編輯回答
維他命

不太適應(yīng)這種分開的寫法……也沒(méi)明白為什么這么寫……而且data那里需要click發(fā)生之后才會(huì)取到值吧?頁(yè)面ready后應(yīng)該啥也沒(méi)有啊……

2018年6月28日 22:02
編輯回答
壞脾滊

我覺(jué)得是頁(yè)面剛加載完的時(shí)候,表單里面還沒(méi)有數(shù)據(jù)填入呀,ajaxSetup拿到的是剛加載完頁(yè)面的空值,應(yīng)該等到click事件的時(shí)候取值才對(duì)。
還有,ajaxSetup應(yīng)該用來(lái)設(shè)置一些不常變動(dòng)的配置參數(shù),比如請(qǐng)求type為POST,url等,如果data是會(huì)變動(dòng)的,應(yīng)該放到ajax方法里面。

2017年5月2日 03:08