- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在一个非常基本的弹出窗口中内置了一个销售人员表单,我们希望在提交时显示一条成功消息。现在它关闭弹出窗口并刷新页面。请耐心等待,任何帮助都会非常有用。
编辑:我不想只使用警报。我希望成功消息出现在表单所在的原始弹出窗口中。
这就是我所拥有的:
<?php
$firstname_status = '';
$lastname_status = '';
$email_status = '';
$phone_status = '';
// If form submits then check form post values.
// Based on proper field validation do curl post to specific location or display proper message
echo $_POST['post_url'];
if($_POST && isset($_POST['post_url']{0}))
{
if (
isset($_POST['email']{0}) &&
filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) &&
isset($_POST['first_name']{0}) &&
trim($_POST['first_name']) != '' &&
isset($_POST['last_name']{0}) &&
trim($_POST['last_name']) != '' &&
(trim($_POST['phone']) == '' || (is_numeric($_POST['phone']) && in_array(strlen($_POST['phone']), array(9,10,12,14))) || preg_match('/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/', $_POST['phone']) == true || preg_match('/^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$/', $_POST['phone']) == true)
)
{
// Remove all characters from phone field to make it an integer value
$_POST['phone'] = preg_replace('/[^0-9]/', '', $_POST['phone']);
// Call function post_to_url to post form values through curl
$return = post_to_url($_POST['post_url'], $_POST);
}
else
{
// Check if first name is not blank or set proper error message
if(!isset($_POST['first_name']{0}) || trim($_POST['first_name']) == '')
{
$_POST['first_name'] = '';
$firstname_status = '<label id="first_name-error" class="error" for="first_name">Please enter your first name</label>';
}
// Check if last name is not blank or set proper error message
if(!isset($_POST['last_name']{0}) || trim($_POST['last_name']) == '')
{
$_POST['last_name'] = '';
$lastname_status = '<label id="last_name-error" class="error" for="last_name" style="display: inline;">Please enter your last name</label>';
}
// Check if email is not blank and proper email format or set proper error message
if(!isset($_POST['email']{0}) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$email_status = '<label id="email-error" class="error" for="email" style="display: inline;">Please enter a valid email address</label>';
}
// Check if phone is not blank then check phone numver format (integer / xxx-xxx-xxx / (xxx) xxx-xxxx) validation
if(isset($_POST['phone']{0}) && (!is_numeric($_POST['phone']) || !in_array(strlen($_POST['phone']), array(9,10,12,14))) && preg_match('/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/', $_POST['phone']) == false && preg_match('/^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$/', $_POST['phone']) == false)
{
$phone_status = '<label style="display: inline;" for="phone" class="error" id="phone-error">Please enter valid phone number</label>';
}
}
}
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="../jquery.js"></script>
<script src="../jquery.validate.js"></script>
<script>
// Custom method to check phone number format
$.validator.addMethod('customphone', function (value, element) {
if(value != '')
{
return this.optional(element) || (/^[0-9]+$/.test(value) && value.length == 10)|| /^\d{3}-\d{3}-\d{4}$/.test(value) || /^\(\d{3}\) \d{3}-\d{4}$/.test(value);
}
else
return true;
}, "Please enter a valid phone number");
$().ready(function() {
$("#pop_up").validate({
rules: {
first_name: "required",
last_name: "required",
email: {
required: true,
email: true
},
phone: {
customphone : 'customphone',
required: false
}
},
messages: {
first_name: "Please enter your first name",
last_name: "Please enter your last name",
email: {
required: "Please enter your email address",
email: "Please enter a valid email address"
}
}
});
});
</script>
<form action="" method="POST" id="pop_up">
<input type=hidden name="oid" value="###############">
<div class="field-wrap text-wrap label-above"><label for="first_name">First Name </label><?=$firstname_status;?><input id="first_name" maxlength="40" name="first_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['first_name']);?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="last_name">Last Name </label><?=$lastname_status;?><input id="last_name" maxlength="80" name="last_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['last_name']);?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="email">Email Address </label><?=$email_status;?><input id="email" maxlength="80" name="email" size="20" type="email" class="textbox" required="required" value="<?php echo stripslashes($_POST['email'])?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="phone">Phone Number </label><?=$phone_status;?><input id="phone" maxlength="40" name="phone" size="20" type="text" class="textbox" value="<?php echo $_POST['phone']?>" /></div>
<div class="field-wrap submit-wrap label-above"><input type="submit" name="submit" value="See the Offer" class="form-button"></div>
<input type="hidden" value="###############" id="Campaign_ID" name="Campaign_ID">
<input type="hidden" value="Pop-up" id="################" name="######################" /> <!-- this is email offer -->
<input type="hidden" value="<?=$_GET['lead_source']?>" id="lead_source" name="lead_source">
<input type="hidden" value="https://www.salesforce.com/######" name="post_url" id="post_url">
</form>
弹出窗口
<script src="jquery-cookie.js"></script>
<script>
$(document).ready(function(){
// check to see if the cookie exists
var cookieExists = Cookies.get('showPopup');
// if the cookie does not exist, then step into here
if(!cookieExists) {
// set the cookie
Cookies.set('showPopup', 'true', { expires: 1 });
// fade in the popup
$("#overlay").delay(6000).fadeIn(600);
}
// this is an extra action that can be called any time
$(".close").click(function(){
$("#overlay").hide();
});
});
</script>
<article id="overlay" style="display: none;">
<section id="form">
<h3 class="gold">We’re here to help</h3>
<?php echo do_shortcode("[salesforce]"); ?>
<i class="close fa fa-times-circle fa-2x" style="left: -10px; bottom: -10px;"></i> <a class="close" href="#close">close</a>
</section>
</article>
$(document).ready(function(){
// fade in the popup
$("#overlay").delay(6000).fadeIn(600);
})
// this is an extra action that can be called any time
$(".close").click(function(){
$("#overlay").hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://stacksnippets.net/js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<article id="overlay" style="display: none;">
<section id="form">
<h3 class="gold">We’re here to help</h3>
<form action="" method="POST" id="pop_up">
<input type=hidden name="oid" value="###############">
<div class="field-wrap text-wrap label-above"><label for="first_name">First Name </label><?=$firstname_status;?><input id="first_name" maxlength="40" name="first_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['first_name']);?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="last_name">Last Name </label><?=$lastname_status;?><input id="last_name" maxlength="80" name="last_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['last_name']);?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="email">Email Address </label><?=$email_status;?><input id="email" maxlength="80" name="email" size="20" type="email" class="textbox" required="required" value="<?php echo stripslashes($_POST['email'])?>" /></div>
<div class="field-wrap text-wrap label-above"><label for="phone">Phone Number </label><?=$phone_status;?><input id="phone" maxlength="40" name="phone" size="20" type="text" class="textbox" value="<?php echo $_POST['phone']?>" /></div>
<div class="field-wrap submit-wrap label-above"><input type="submit" name="submit" value="See the Offer" class="form-button"></div>
<input type="hidden" value="###############" id="Campaign_ID" name="Campaign_ID">
<input type="hidden" value="Pop-up" id="################" name="######################" /> <!-- this is email offer -->
<input type="hidden" value="<?=$_GET['lead_source']?>" id="lead_source" name="lead_source">
<input type="hidden" value="https://www.salesforce.com/######" name="post_url" id="post_url">
</form>
<i class="close fa fa-times-circle fa-2x" style="left: -10px; bottom: -10px;"></i> <a class="close" href="#close">close</a>
</section>
</article>
最佳答案
不幸的是,jsfiddle 虽然总体上很棒,但似乎不喜欢表单提交,所以这是一个临时的 codepen demo 。原则上,此解决方案涉及在验证器之前插入 jquery 提交函数,以拦截提交操作并在使用以下代码恢复操作之前应用成功消息:
JS:
// fade in the popup
$("#overlay").fadeIn(1500);
// this is an extra action that can be called any time
$(".close").click(function() {
$("#overlay").hide();
});
$(window).load(function() {
var popup = $("form#pop_up");
popup.submit(function(event) {
var $this = $(this);
if (!$this.hasClass('paused')) { // check if it isn't in a pause state
event.preventDefault(); // prevent the submission
$this.addClass('paused'); // use this class as a flag
$("#overlay").append('SUCCESS!'); // add the success message
setTimeout(function() {
$("#overlay").append(' ...');
$(".form-button").trigger('click'); // mechanically trigger a second click
}, 2000); // define a delay
}
})
popup.validate({
rules: {
first_name: "required",
last_name: "required",
email: {
required: true,
email: true
},
phone: {
customphone: 'customphone',
required: false
}
},
messages: {
first_name: "Please enter your first name",
last_name: "Please enter your last name",
email: {
required: "Please enter your email address",
email: "Please enter a valid email address"
}
},
success: function(event) {
// alert('success message');
// do other things for a valid form
},
submitHandler: function(form, event) {
// do other things for a valid form
}
});
});
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://validatejs.org/validate.min.js"></script>
<article id="overlay" style="display: none;">
<section id="form">
<h3 class="gold">We’re here to help</h3>
<form action="" method="POST" id="pop_up">
<input type=hidden name="oid" value="###############">
<div class="field-wrap text-wrap label-above">
<label for="first_name">First Name</label>
<?=$firstname_status;?>
<input id="first_name" maxlength="40" name="first_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['first_name']);?>" />
</div>
<div class="field-wrap text-wrap label-above">
<label for="last_name">Last Name</label>
<?=$lastname_status;?>
<input id="last_name" maxlength="80" name="last_name" size="20" type="text" required="required" value="<?php echo stripslashes($_POST['last_name']);?>" />
</div>
<div class="field-wrap text-wrap label-above">
<label for="email">Email Address</label>
<?=$email_status;?>
<input id="email" maxlength="80" name="email" size="20" type="email" class="textbox" required="required" value="<?php echo stripslashes($_POST['email'])?>" />
</div>
<div class="field-wrap text-wrap label-above">
<label for="phone">Phone Number</label>
<?=$phone_status;?>
<input id="phone" maxlength="40" name="phone" size="20" type="text" class="textbox" value="<?php echo $_POST['phone']?>" />
</div>
<div class="field-wrap submit-wrap label-above">
<input type="submit" name="submit" value="See the Offer" class="form-button">
</div>
<input type="hidden" value="###############" id="Campaign_ID" name="Campaign_ID">
<input type="hidden" value="Pop-up" id="################" name="######################" />
<!-- this is email offer -->
<input type="hidden" value="<?=$_GET['lead_source']?>" id="lead_source" name="lead_source">
<input type="hidden" value="https://www.salesforce.com/######" name="post_url" id="post_url">
</form>
<i class="close fa fa-times-circle fa-2x" style="left: -10px; bottom: -10px;"></i> <a class="close" href="#close">close</a>
</section>
</article>
关于javascript - 弹出表单成功消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41946285/
我一直在读到,如果一个集合“被释放”,它也会释放它的所有对象。另一方面,我还读到,一旦集合被释放,集合就会释放它的对象。 但最后一件事可能并不总是发生,正如苹果所说。系统决定是否取消分配。在大多数情况
我有一个客户端-服务器应用程序,它使用 WCF 进行通信,并使用 NetDataContractSerializer 序列化对象图。 由于服务器和客户端之间传输了大量数据,因此我尝试通过微调数据成员的
我需要有关 JMS 队列和消息处理的帮助。 我有一个场景,需要针对特定属性组同步处理消息,但可以在不同属性组之间同时处理消息。 我了解了特定于每个属性的消息组和队列的一些知识。我的想法是,我想针对
我最近开始使用 C++,并且有一种强烈的冲动 #define print(msg) std::cout void print(T const& msg) { std::cout void
我已经为使用 JGroups 编写了简单的测试。有两个像这样的简单应用程序 import org.jgroups.*; import org.jgroups.conf.ConfiguratorFact
这个问题在这里已经有了答案: Firebase messaging is not supported in your browser how to solve this? (3 个回答) 7 个月前关
在我的 C# 控制台应用程序中,我正在尝试更新 CRM 2016 中的帐户。IsFaulted 不断返回 true。当我向下钻取时它返回的错误消息如下: EntityState must be set
我正在尝试通过 tcp 将以下 json 写入 graylog 服务器: {"facility":"GELF","file":"","full_message":"Test Message Tcp",
我正在使用 Django 的消息框架来指示成功的操作和失败的操作。 如何排除帐户登录和注销消息?目前,登录后登陆页面显示 已成功登录为“用户名”。我不希望显示此消息,但应显示所有其他成功消息。我的尝试
我通过编写禁用qDebug()消息 CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT 在.pro文件中。这很好。我想知道是否可以
我正在使用 ThrottleRequest 来限制登录尝试。 在 Kendler.php 我有 'throttle' => \Illuminate\Routing\Middleware\Throttl
我有一个脚本,它通过die引发异常。捕获异常时,我想输出不附加位置信息的消息。 该脚本: #! /usr/bin/perl -w use strict; eval { die "My erro
允许的消息类型有哪些(字符串、字节、整数等)? 消息的最大大小是多少? 队列和交换器的最大数量是多少? 最佳答案 理论上任何东西都可以作为消息存储/发送。实际上您不想在队列上存储任何内容。如果队列大部
基本上,我正在尝试创建一个简单的 GUI 来与 Robocopy 一起使用。我正在使用进程打开 Robocopy 并将输出重定向到文本框,如下所示: With MyProcess.StartI
我想将进入 MQ 队列的消息记录到数据库/文件或其他日志队列,并且我无法修改现有代码。是否有任何方法可以实现某种类似于 HTTP 嗅探器的消息记录实用程序?或者也许 MQ 有一些内置的功能来记录消息?
我得到了一个带有 single_selection 数据表和一个命令按钮的页面。命令按钮调用一个 bean 方法来验证是否进行了选择。如果不是,它应该显示一条消息警告用户。如果进行了选择,它将导航到另
我知道 MSVC 可以通过 pragma 消息做到这一点 -> http://support.microsoft.com/kb/155196 gcc 是否有办法打印用户创建的警告或消息? (我找不到谷
当存在大量节点或二进制数据时, native Erlang 消息能否提供合理的性能? 情况 1:有一个大约 50-200 台机器的动态池(erlang 节点)。它在不断变化,每 10 分钟大约添加或删
我想知道如何在用户登录后显示“欢迎用户,您已登录”的问候消息,并且该消息应在 5 秒内消失。 该消息将在用户成功登录后显示一次,但在同一 session 期间连续访问主页时不会再次显示。因为我在 ho
如果我仅使用Welcome消息,我的代码可以正常工作,但是当打印p->client_name指针时,消息不居中。 所以我的问题是如何将消息和客户端名称居中,就像它是一条消息一样。为什么它目前仅将消
我是一名优秀的程序员,十分优秀!