【发布时间】:2016-01-25 22:18:06
【问题描述】:
我在 jQuery modal 中继承了以下 HTML 表单:
<div id = "openModal" class = "modalDialog">
<div>
<a href = "#close" title = "close" class = "close">X</a>
<form id = "write_us_form" action="" method = "post">
<div class = "form_container">
<label class = "form_label">Name</label>
<input type = "text" class = "form_textfield" name = "f_name"><br>
<label class = "form_label">E-mail</label>
<input type = "text" class = "form_textfield" name = "f_email"><br>
<label class = "form_label">Subject</label>
<input type = "text" class = "form_textfield" name = "f_subject"><br>
<label class = "form_label">Message</label>
<textarea class = "form_textarea" name = "f_message" rows = "5"></textarea>
<input type = "submit" class = "form_submit_button" value = "Send message">
</div>
</form>
</div>
</div>
当我点击提交按钮时,会运行以下 jQuery 脚本,显然是为了不刷新页面并运行 send_form.php 文件来发送电子邮件:
$(function ()
{
$('#write_us_form').on('submit', function (e)
{
e.preventDefault (); // prevent page reload
$.ajax (
{
type : 'POST', // hide URL
url : 'send_form.php', // form validation file
data : $('#write_us_form').serialize (),
success : function (data)
{
$('#openModal').dialog('close');
alert ('Thank you for contacting us!');
}
});
});
});
代码不做两件事: 1. 关闭模态。我已经添加了 dialog('close') 部分,但它没有任何效果。 2. 如果我用关闭按钮关闭模态,然后在显示模态的网站上单击正确的按钮,表单中仍然有以前的内容。
php 部分正常工作,发送了正确的电子邮件,我只是想找到一种方法来关闭模式并在再次打开时刷新表单。
感谢您的帮助!
【问题讨论】:
-
虽然我对 jQuery modals 不够熟悉(我编写了自己的模态系统 - 在我个人看来 - 更好的特性),但对于这种形式,我绝对可以建议:
$("#write_us_form")[0].reset();-将表单重置为其默认值。 -
感谢 Niet 的快速回复,第 2 项已解决!
-
您正在使用 jQuery UI?你看到警报了吗?
-
由于是继承的,从脚本包含在head部分来看,不包含jQuery UI。不,警报也不显示。
-
那么
dialog插件是什么?向您的 Ajax 调用添加错误处理程序。
标签: javascript jquery html forms