2015-06-19 23 views
1

我要插入一個電子郵件地址到我的分貝與Ajax調用。 這裏談到的問題,而是工作到背景,它刷新頁面。

alert("yea");在成功的功能沒有被達到

可能是什麼問題

$(document).ready(function() { 
     $("#header-subscribe").click(function(){ 
     var str = $("#email").val();   
     if(validateEmail(str)) { 

     $.ajax({ 

     url: 'php/signupForm.php', 
     type: 'GET', 
     data: 'email='+str, 
     success: function(data) { 
     //called when successful 
     alert("yea"); 
     }, 
     error: function(e) { 
     //called when there is an error 
     //console.log(e.message); 
     } 

    }); 

形式:?

<form id="hero-subscribe" class="the-subscribe-form" > 
    <div class="input-group"> 
     <input type="email" class="form-control" placeholder="Enter Your Email" id="email"> 
     <span class="input-group-btn"> 
      <button class="btn btn-subscribe" id="header-subscribe" type="submit">subscribe</button> 
     </span> 
    </div> 
</form> 
+0

你不能阻止點擊的默認操作。 –

回答

6

Ajax調用與刷新無關。你有一個提交按鈕,提交按鈕的目的是提交表單。

最簡單的解決辦法是不使用一個提交按鈕:

type="button" 

然而,事件處理程序綁定到按鈕的單擊事件是不是好的做法。所以不是說,改變的類型,處理程序綁定到submit事件和prevent the default action(這是提交表單):

$("#hero-subscribe").submit(function(event) { 
    event.preventDefault(); 
    // ... 
}); 
1

event.preventDefault()表單動作,否則就像正常表單一樣提交。

$("#header-subscribe").click(function(event){ 
    event.preventDefault(); //stop the default submit action 
4

您需要防止點擊的默認操作...

$("#header-subscribe").click(function(event){ 
    event.preventDefault(); 
2

你應該綁定submit活動形式,並使用event.preventDefault()阻止事件的默認操作。

$("#hero-subscribe").submit(function(event) { 
    event.preventDefault(); 
    //Your code 
});