【发布时间】:2011-01-10 11:47:40
【问题描述】:
我在 HTML 页面上有一个电子邮件表单,一旦您单击提交以发送表单提交,我希望 DIV“表单”更新或被替换为说“谢谢”消息。
尝试谷歌搜索,但没有找到任何我可以使用的具体内容。
有什么想法吗?
谢谢
【问题讨论】:
-
我用你的例子更新了我的答案:)
标签: javascript jquery html forms webforms
我在 HTML 页面上有一个电子邮件表单,一旦您单击提交以发送表单提交,我希望 DIV“表单”更新或被替换为说“谢谢”消息。
尝试谷歌搜索,但没有找到任何我可以使用的具体内容。
有什么想法吗?
谢谢
【问题讨论】:
标签: javascript jquery html forms webforms
你可以使用jQuery.ajax方法:
$.ajax({
url: 'ajax/send_mail.php',
data: "message="+$('#some_field').val(),
success: function(data) {
//replace form (form is in div <div id="form"><form>Form data</form></form>)
$('div#form').html('<p>Thank You!<p>');
//or $('div#form').html(data); if you are returning message from send_mail.php
}
});
如果你有问题,我可以给你写一个完整的脚本(我只是有心情,有一些空闲时间):)
更新:
基本上就是这样。
将此复制/粘贴为您的表单:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hr-HR" lang="hr-HR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title</title>
<script type="text/JavaScript" charset="utf-8" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$('#submit').click(function(){
$.ajax({
type: "GET",
url: 'sendit.php',
dataType: 'json',
data: $('form#mail_form').serialize(),
success: function(data) {
if(data.success==1){
$('div#form').html(data.message);
}
}
});
return false;
});
});
</script>
</head>
<body>
<div id="form">
<form id="mail_form">
<div>
<input type="text" name="subject" id="subject"/>
</div>
<div>
<textarea name="message" id="message"></textarea>
</div>
<div>
<input type="submit" name="submit" id="submit" value="Send"/>
</div>
</form>
</div>
</body>
</html>
在 sendit.php 时复制/粘贴: 您必须验证此数据
//do stuff, send mail, save to database,...
$data['success']=1;
$data['message']='Thank You!';
echo json_encode($data);
【讨论】:
查看 jQuery 的replaceWith():
$('div.the-form').replaceWith('<div class="thankyou">Thanks for your submission.</div>');
【讨论】:
您可以进行 AJAX POST 并在回调中显示“感谢消息”(jQuery 可能会有所帮助)。
代码可能如下所示:
$.post('test.do', function(data) {
$('.confirmation').show();
});
【讨论】:
创建一个 id 为“thankyouDiv”的新 div,并初始设置其 style="display:none;"。这个 div 应该包含你的感谢信息
在提交表单时,首先隐藏包含电子邮件表单的 div,并通过更改 style="display:block;" 来显示“thankyouDiv”。之后您可以提交表单。
希望这能解决您的问题
【讨论】:
您可以使用 jquery / javascript 隐藏表单,并在表单提交时显示感谢消息 div。 编辑:尝试以下操作:
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function (){
$("#button").click(function () {
$("form").hide();
$("div").show();
return false;
});
});
</script>
<form>
form data<br/>
<button id="button">click me</button>
</form>
<div style="display: none">
thank you
</div>
</html>
【讨论】:
假设,这是您的标记...
...
这是你的 jQuery 代码...
让我知道结果:)
【讨论】: