使提交表单在不重定向或刷新的情况下工作
Make a submit form work without redirecting or refreshing
我有一个php联系人表单,其中包含一些js脚本。在该表单中,当点击提交按钮(输入)时(如果所有输入都填写正确),表单下会出现一条"成功"消息,但由于页面正在重定向到contact.php文件,因此无法看到该消息。我希望表单在不重定向的情况下工作,所以只需在表单下显示成功消息,并在提交后清除所有输入(如果所有输入都填写正确)。我真的很感激任何帮助!提前谢谢。我不能把php放在jsfiddle中,但我认为它不是我想要的。这是代码的其余部分。
http://jsfiddle.net/5nLab5kh/
HTML:
<form role="form" id="form-contact" method="post" action="php/contact.php">
<div class="form-group">
<label for="ContactName">Your Name (required)</label>
<input type="text" class="form-control required" name="ContactName" id="ContactName" value=""/>
</div>
<div class="form-group">
<label for="ContactEmail">Email Address (required)</label>
<input type="email" class="form-control required" name="ContactEmail" id="ContactEmail" value="" />
</div>
<div class="form-group">
<label class="ContactMsg">Your Message</label>
<textarea class="form-control" rows="3" name="ContactMsg" title=""></textarea>
</div>
<input type="submit" class="btn btn-primary" value="Submit" name="submit" id="ContactMessage"/>
</form>
<p id="cf-notification"></p>
JS:
$('#form-contact').submit(function(){
/* Get Values */
contact_name = $('#ContactName').val();
contact_email = $('#ContactEmail').val();
contact_message = $('#ContactMsg').val();
/* Validate Fields */
if( contact_name == '' ){
$('#cf-notification').hide().html('<span class="alert"><i class="fa fa-exclamation-triangle"></i>Please fill your contact name!</span>').fadeIn("slow");
return false;
}else if( contact_email == '' ){
$('#cf-notification').hide().html('<span class="alert"><i class="fa fa-exclamation-triangle"></i>Please fill your email address!</span>').fadeIn("slow");
return false;
}else if( contact_message == '' ){
$('#cf-notification').hide().html('<span class="alert"><i class="fa fa-exclamation-triangle"></i>Please fill your message!</span>').fadeIn("slow");
return false;
}else{$('#cf-notification').hide().html('<span class="success"><i class="fa fa-envelope"></i>' + 'Thank you for contacting us! We will answer as soon as we can.' + '</span>').fadeIn("slow");
return true;
}
});
问题已解决。对于那些对"其他"感兴趣的人,你必须用以下内容替换"return true":
$("#form-contact")[0].reset();
$.post($(this).attr('action'), $(this).serialize(), function(response){
},'json');
return false;
第一行只是清除输入,其余的是解决重定向问题:)。所以工作非常完美,没有重定向。
相关文章:
- 如何在不刷新页面的情况下更新显示框
- 无法't在不使用Javascript刷新页面的情况下多次将值传递给文本框
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 嵌入的自定义谷歌地图不会在没有刷新的情况下显示
- 如何在不刷新父(应用程序)路由的情况下刷新当前路由
- 刷新jqGrid;t在启用无限滚动的情况下保存当前页面位置
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 如何在不刷新页面的情况下发送表单
- 如何在不刷新页面的情况下从 PHP 中的 SQL Server 数据库获取数据
- 如何在不刷新页面和不单击“发送”按钮的情况下从下拉选择中向 MYSQL 发送值
- 如何在不刷新的情况下停止类的事件
- 使用javascript创建Form元素,并在不重定向/刷新的情况下提交
- 如何在不重新加载的情况下在表单编辑中更改主键后刷新jqgrid行id
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- 如何在不刷新 node.js 和 ejs 的情况下提交表单
- Angular/UI路由器-如何在不刷新所有内容的情况下更新URL
- 如何动态设置填充并在不刷新的情况下显示它
- Rails/JS-在不刷新页面的情况下获取变量
- 允许用户在不刷新页面的情况下留下多条评论