gpt4 book ai didi

javascript - 使用 parsley.js 验证多页表单

转载 作者:行者123 更新时间:2023-12-03 10:55:07 25 4
gpt4 key购买 nike

我正在处理找到的多页表单 here并尝试使用 parsley.js 验证字段集。我已按照他们在多页表单示例页面上的步骤进行操作,但遇到了以下两个问题之一:

1) 在我点击“提交”之前,它不会提示未填写的字段,然后当我点击“上一个”或“上一个”时,会显示错误2) 当我单击“下一步”时,控制台中出现错误,提示“next_fs.show();”上有一个未定义的函数

这是表单代码,下面是 fiddle 中我当前所有代码的链接。

    <!-- multistep form -->
<form id="msform" data-parsley-validate>
<!-- progressbar -->
<ul id="progressbar">
<li class="active">Account Setup</li>
<li>Social Profiles</li>
<li>Personal Details</li>
</ul>
<!-- fieldsets -->
<fieldset class="first block1">
<h2 class="fs-title">Create your account</h2>
<h3 class="fs-subtitle">This is step 1</h3>
<input type="text" name="email" placeholder="Email" required data-parsley-group="block1" />
<input type="password" name="pass" placeholder="Password" required data-parsley-group="block1" />
<input type="password" name="cpass" placeholder="Confirm Password" required data-parsley-group="block1" />
<input type="button" name="next" class="next action-button" value="Next" data-current-block="1" data-next-block="2" />
</fieldset>
<fieldset class="second block2">
<h2 class="fs-title">Social Profiles</h2>
<h3 class="fs-subtitle">Your presence on the social network</h3>
...
<input type="button" name="previous" class="previous action-button" value="Previous" data-current-block="2" data-next-block="1" />
<input type="button" name="next" class="next action-button" value="Next" data-current-block="2" data-next-block="3" />
</fieldset>
<fieldset class="third block3">
<h2 class="fs-title">Personal Details</h2>
<h3 class="fs-subtitle">We will never sell it</h3>
...
<input type="button" name="previous" class="previous action-button" value="Previous" data-current-block="3" data-next-block="2" />
<button type="submit" name="donateNow" id="donateNow" class="submit action-button" value="Submit" >Submit</button>
</fieldset>
</form>

Here是对我当前的代码进行的调整,以便与 parsley.js 一起使用。 (我目前遇到问题#2)

我一生都无法弄清楚如何让验证在页面更改上起作用。感谢您提供的任何帮助!

最佳答案

您的代码存在一些问题。关于您的第二个问题,发生的原因是:

//this comes from the custom easing plugin
easing: 'easeInOutBack'

您将此作为 options 的一部分animate 的对象。根据您的评论,这来自一个自定义插件,您没有将其包含在 jsfiddle 中。

如果您评论该行,它将按预期动画 ( see updated jsfiddle );

关于你的第一个问题:

  1. 您的代码中没有包含 parsley.js
  2. 您没有将欧芹绑定(bind)到表单(您应该使用 $("#msform").parsley() 或属性 data-parsley-validate 来执行此操作)
  3. 当您点击.next时或.prev您始终显示下一个或上一个字段集,而不验证该字段集/ block 。
  4. 您的 jsfiddle 与您发布的代码不匹配。在 fiddle 中你没有 required属性。

您应该看看 multisteps example ,尤其是 javascript 部分,我在此处添加了附加注释:

// The form tag is <form id="demo-form" data-parsley-validate>, so 
// parsley will automatically be bound to that form.
// see the docs http://parsleyjs.org/doc/index.html#psly-usage-form
<script type="text/javascript">
$(document).ready(function () {
// when you click on next
$('.next').on('click', function () {
// save current and previous blocks (these are your fieldsets)
var current = $(this).data('currentBlock'),
next = $(this).data('nextBlock');

// only validate going forward. If current group is invalid, do not go further
// .parsley().validate() returns validation result AND show errors
if (next > current)
// THIS IS THE IMPORTANT STEP. Validate the current block,
// If the current block is not validated, the next block
// won't be shown (note the return).
if (false === $('#demo-form').parsley().validate('block' + current))
return;

// validation was ok. We can go on next step.
$('.block' + current)
.removeClass('show')
.addClass('hidden');

$('.block' + next)
.removeClass('hidden')
.addClass('show');

});
});
</script>

关于javascript - 使用 parsley.js 验证多页表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28286220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com