提交表单时验证和Fancybox弹出窗口

阿德里安·拉方(Adrien Lafond)

以这种动作的形式:

<form action="email.php">

实际行为:

  • 当用户单击“提交”时,将使用jQuery validate来检查表单。
  • 如果一切正常,那么将提交数据,并将用户发送到email.php页面

所需行为:

  • 当用户单击“提交”时,
  • 数据检查
  • 如果一切正常,请提交数据并打开带有消息的弹出窗口(带有fancybox之类的信息)

单击“提交”按钮后如何处理?

单独进行验证就可以了,Fancybox也可以。但是2一起不起作用。

$(document).ready(function() {
    $(".fancybox").fancybox(); // initializing
    $('#contactForm').validate({ 
        submitHandler: function (form) {

            $.post('/email.php', $('form').serialize());

            $(".popover").fancybox({
                    maxWidth    : 800,
                    maxHeight   : 600,
                    fitToView   : false,
                    width       : '70%',
                    height      : '50%',
                    autoSize    : false,
                    closeClick  : false, 
                    openEffect  : 'none',
                    closeEffect : 'none' 
            }); 

            jQuery('.popover').trigger('click'); 

        }
    });
});

的HTML

<button type="submit" class="btn btn-block popover" href="#successMessage" >Submit</button>

PS:我在StackOverflow上没有通过验证找到这种特殊情况

希拉里

您不能这样做,触发$(".popover").fancybox({内部验证submitHandler: function (),您必须分别运行fancyboxvalidation编码。

  • 不需要初始化 $(".fancybox").fancybox();
  • 从中删除fancybox触发器jQuery('.popover').trigger('click');submitHandler: function ()
  • 从表单中删除class="popover"href="#successMessage"提交按钮
  • 运行fancyboxvalidation编码分开
  • 处理$.post('/email.php', $('form').serialize());内部的Ajax方法submitHandler: function ()
  • fancybox在Ajax成功调用后触发$(".fancybox").trigger('click');

下面的示例将使您了解如何在弹出窗口中触发fancybox和表单验证,以及验证是否在哪里可以处理Ajax方法和调用。

$(document).ready(function () {
	// initializing
	$('.fancybox').fancybox({
		maxWidth: 800,
		maxHeight: 600,
		fitToView: false,
		width: '70%',
		height: '90%',
		autoSize: false,
		closeClick: false,
		openEffect: 'none',
		closeEffect: 'none'
	});
	$('#contactForm').validate({
		rules: {
			name: {
				required: true
			},
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			name: {
				required: "Please enter your full name."
			},
			email: {
				required: "Please enter your email address."
			}
		},
		submitHandler: function (form) {
		   //Handle Ajax Method and success  / error here
			$(".fancybox").trigger('click');
		}
	});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" />
//Contact Form with validation

<div class="centered-wrap">
	<form class="form-horizontal" role="form" id="contactForm">
		<div class="form-group">
			<label class="col-sm-2 control-label" for="email">Email</label>
			<div class="col-sm-10">
				<input type="email" class="form-control" name="email" id="email" placeholder="Email" />
			</div>
		</div>
		<div class="form-group">
			<label class="col-sm-2 control-label" for="name">Name</label>
			<div class="col-sm-10">
				<input type="text" class="form-control" id="name" name="name" placeholder="Name" />
			</div>
		</div>
		<div class="form-group">
			<div class="col-sm-offset-2 col-sm-10">
				<button type="submit" class="btn btn-default">Sign in</button>
			</div>
		</div>
	</form>
</div>
//Message inside FancyBox
<div class="fancybox" style="display: none;">Confirmation message </div>

小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Fancybox多个弹出窗口在提交时关闭表格吗?

来自分类Dev

通过fancybox modal和jquery表单提交验证

来自分类Dev

提交表单时,角度事件成功,它将打开弹出窗口

来自分类Dev

弹出窗口消失,页面在表单提交时重新加载

来自分类Dev

表单验证弹出窗口失败

来自分类Dev

对话框弹出窗口中的jQuery和表单验证

来自分类Dev

关闭表单提交时打开的弹出窗口,并触发单击父窗口

来自分类Dev

PHP联系表单:页面刷新时禁用确认表单重新提交弹出窗口

来自分类Dev

jQuery弹出窗口以post方法提交表单

来自分类Dev

在提交表单后显示成功弹出窗口?

来自分类Dev

提交表单后显示弹出窗口

来自分类Dev

AngularJS Fancybox弹出窗口

来自分类Dev

将表单数据发送到按钮提交时的弹出窗口

来自分类Dev

我想在提交表单时显示一个确认弹出窗口

来自分类Dev

jQuery表单验证和提交

来自分类Dev

Ajax表单验证和提交

来自分类Dev

当我单击按钮更新我的表单 CSRF 验证失败时弹出窗口

来自分类Dev

在Chrome和IE中无法读取HTML5表单验证弹出窗口

来自分类Dev

提交表单时的jQuery表单验证问题

来自分类Dev

提交表单时如何仅验证表单?

来自分类Dev

JavaScript表单验证,onblur验证和提交

来自分类Dev

验证和默认弹出窗口关闭

来自分类Dev

在Chrome扩展程序中提交的表单上刷新弹出窗口

来自分类Dev

提交模态表单后显示引导弹出窗口

来自分类Dev

使用自定义模型弹出窗口确认表单提交

来自分类Dev

无法提交加载在引导程序弹出窗口上的表单

来自分类Dev

如何在表单提交后禁用模态弹出窗口

来自分类Dev

表单提交后无法关闭模态弹出窗口

来自分类Dev

在提交表单或字段变脏时显示验证消息-提交时显示定制消息和默认验证消息

Related 相关文章

  1. 1

    Fancybox多个弹出窗口在提交时关闭表格吗?

  2. 2

    通过fancybox modal和jquery表单提交验证

  3. 3

    提交表单时,角度事件成功,它将打开弹出窗口

  4. 4

    弹出窗口消失,页面在表单提交时重新加载

  5. 5

    表单验证弹出窗口失败

  6. 6

    对话框弹出窗口中的jQuery和表单验证

  7. 7

    关闭表单提交时打开的弹出窗口,并触发单击父窗口

  8. 8

    PHP联系表单:页面刷新时禁用确认表单重新提交弹出窗口

  9. 9

    jQuery弹出窗口以post方法提交表单

  10. 10

    在提交表单后显示成功弹出窗口?

  11. 11

    提交表单后显示弹出窗口

  12. 12

    AngularJS Fancybox弹出窗口

  13. 13

    将表单数据发送到按钮提交时的弹出窗口

  14. 14

    我想在提交表单时显示一个确认弹出窗口

  15. 15

    jQuery表单验证和提交

  16. 16

    Ajax表单验证和提交

  17. 17

    当我单击按钮更新我的表单 CSRF 验证失败时弹出窗口

  18. 18

    在Chrome和IE中无法读取HTML5表单验证弹出窗口

  19. 19

    提交表单时的jQuery表单验证问题

  20. 20

    提交表单时如何仅验证表单?

  21. 21

    JavaScript表单验证,onblur验证和提交

  22. 22

    验证和默认弹出窗口关闭

  23. 23

    在Chrome扩展程序中提交的表单上刷新弹出窗口

  24. 24

    提交模态表单后显示引导弹出窗口

  25. 25

    使用自定义模型弹出窗口确认表单提交

  26. 26

    无法提交加载在引导程序弹出窗口上的表单

  27. 27

    如何在表单提交后禁用模态弹出窗口

  28. 28

    表单提交后无法关闭模态弹出窗口

  29. 29

    在提交表单或字段变脏时显示验证消息-提交时显示定制消息和默认验证消息

热门标签

归档