2014-03-31 49 views
0

看來我不能序列化我的表單。我確實得到了第一次警報,但沒有第二次警告pdata。有沒有人看到最新的錯誤?我試圖使用Ajax發送表單中的數據。下面是腳本和html代碼。Ajax發送表單到服務器,序列化失敗?

<html> 
<head> 

    <script> 
     function dologin(event) { 
      event.preventDefault(); 

      alert("lol"); 
      var pdata = $('#form').serialize(); 
      alert(pdata); 

      $.ajax({ 
       type: 'POST', 
       data: pdata, 
       url: 'LINK', 
       success: function(data) { 
        //console.log(data); 
        alert("YAY"); 
       }, 
       error: function() { 
        //console.log(data); 
        alert("NAY"); 
       } 
      }); 
     }; 
    </script> 
</head> 
<body> 
<h1>Logg inn</h1> 
    <form id="form" onsubmit="dologin()"> 
    <div class="form-group"> 
     <label for="email">Epost</label> 
     <input type="email" class="form-control" name="login" value="" placeholder="Epost"> 
    </div> 
    <div class="form-group">  
     <label for="password">Passord</label> 
     <input type="password" class="form-control" name="password" value="" placeholder="Passord"> 
    </div> 
    <div class="checkbox"> 
     <label> 
     <input type="checkbox" name="remember_me"> 
     Husk meg 
     </label> 
    </div> 
     <button type="submit" class="btn btn-default">Logg inn</button> 
    </form> 

    <div class="login-help"> 
     <p>Glemt passordet? <a href="index.html">Trykk her for å endre det</a>.</p> 
    </div> 
</body> 
</html> 
+0

雖然它看起來像你的實現看起來是正確的,我相信你想使用['serializeArray'](https://api.jquery.com/serializeArray/ )。 – Seiyria

+0

這可能是一個愚蠢的問題,但你真的包括jQuery?如果沒有,它肯定不會超過$ –

+0

的第一次使用...是否包括jQuery? ..編輯:ninja'd! – mituw16

回答

0

與您的代碼的問題是,你正在訪問事件說法哪來沒有傳遞給函數的參數,所以它的觸發一個錯誤,提交表單爲正常表單提交。

如果你想保持你的實現ü可以修改您的代碼像波紋管:

function dologin() { 

    alert("lol"); 
    var pdata = $('#form').serialize(); 
    alert(pdata); 

    $.ajax({ 
     type: 'POST', 
     data: pdata, 
     url: 'LINK', 
     success: function(data) { 
      //console.log(data); 
      alert("YAY"); 
     }, 
     error: function() { 
      //console.log(data); 
      alert("NAY"); 
     } 
    }); 

    return false; 
}; 

和修改此行

<form id="form" onsubmit="dologin()"> 

<form id="form" onsubmit="return dologin()"> 

或者可以使用以下方式

$(document).ready(function() { 
    $('#form').submit(function(e){ 
     e.preventDefault(); 
     $.ajax({ 
      type: 'POST', 
      data: $(this).serialize(), 
      url: 'LINK', 
      success: function(data) { 
       //console.log(data); 
       alert("YAY"); 
      }, 
      error: function() { 
       //console.log(data); 
       alert("NAY"); 
      } 
     }); 
    }); 
}); 

,並形成標籤應然後:

<form id="form">