2013-05-08 53 views
0

我試圖在成功的jQuery郵件驗證和表單提交後返回「謝謝」消息。我想顯示「謝謝」消息,並阻止頁面重定向到動作url,但仍處理數據服務器端。雖然研究我認爲一個Jquery回調聽起來是正確的,但需要更多的方向,因爲我發現的例子有點到處都是。任何人可以提供一些輸入?表單提交後返回「成功」消息

$("#emailsignup_form").validate(); 
}); 

$('#submitemail').click(function() { 
    app.ajax.load({ 
     reqName : 'emailSubmit', 
     url: "$httpUrl('Bronto-OptIn')$?email=" + $('#email').val(), 
     selector : '#emailbox', 
     callback: function(responseText, textStatus) { } 
return false; 
    } 
}); 

<form id="emailsignup_form" method="post" action="$httpUrl('Bronto-OptIn', 'fid', 'information')$"> 
<input id="cemail" name="email" size="25" class="required email" /> 
<input class="submit" id="submitemail" type="submit" value="Submit"/> 
</form> 
<div id="emailbox"></div> 
+5

你需要的是ajax! – adeneo 2013-05-08 19:31:33

+0

在target.php中創建cookie並顯示cookie是否設置,在主頁上更改 – 2013-10-18 20:58:58

回答

0

假設你添加一個div,以顯示你的文章的結果

<form id="emailsignup_form" method="post" action=""> 
    <input id="cemail" name="email" size="25" class="required email" /> 
    <input class="submit" id="submitemail" type="submit" value="Submit"/> 
</form> 
<div id="postresult"> 
</div> 

您可以$.post()發表您的數據是這樣

$(function(){ 
    $("form#emailsignup_form").submit(function(e){ 
     e.preventDefault(); 
     $.post(
      "processdata.php", 
      $(this).serialize(), 
      function(data){ 
       //Your code to process returned data goes here 
       $("#postresult").text("Thank you!"); 
      } 
     ); 
    });   
}); 
+0

您好,我正在嘗試使用Ajax進行此操作。對不起,我應該在上面提到。我正在編輯我的代碼以顯示。我一直在絞盡腦汁解決這個問題! – Jgunzblazin 2013-05-08 20:25:13

+1

@Jgunzblazin答案顯示了這一點。 '$ .post'是jQuery ajax函數**的簡寫。您是否閱讀過我在答案中給出的鏈接['$ .post()'](http://api.jquery.com/jQuery.post/)? – peterm 2013-05-08 20:33:23

+0

沒有意識到這是一個鏈接。現在讀。 – Jgunzblazin 2013-05-08 20:42:11

0

我是能夠實現返回成功通過修改我的上述代碼到:

$('#emailsignup_form').validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     } 
    }, 
    messages: { 
     email: { 
      required: "this is required", 
      email: "this must be a valid email" 
     } 
    }, 
    submitHandler: function (form) { 
     app.ajax.load({ 
     reqName : 'emailSubmit', 
     url: "$httpUrl('Bronto-OptIn')$?email=" + $('#email').val(), 
     selector : '#emailbox', 
     callback: function(responseText, textStatus) { } 
     }); 
     return false; 
    } 
}); 
}); 

<div id="emailbox"> 
<form id="emailsignup_form" name="emailsignup_form" method="post" action=""> 
<input type="text" name="email" id="email" /> 
<input type="submit" name="submitemail" id="submitemail" value="Submit" /> 
</form> 
</div>