欧芹.js - 一个多步骤功能适用于所有形式
Parsley.js - one multi steps function for all forms
我正在尝试使用 Parsely.js 验证插件设置多步骤表单验证。
我遵循了这里的文档:"http://parsleyjs.org/doc/examples/multisteps.html" - 但唯一的问题是我将有几个表单,这些表单将在整个站点上具有多个步骤,并且在某些页面上会有多个步骤。
提供的代码段一次只支持一个表单,我需要为每个表单指定一个 ID,如下所示:
<script type="text/javascript">
$(document).ready(function () {
$('.next').on('click', function () {
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)
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>
有没有办法调整代码段,以便它自动检测表单是否具有多个步骤并相应地应用适当的行为/设置?而不必为每个表单一遍又一遍地复制该代码段。
以下是 HTML 的外观:
<form id="demo-form" data-parsley-validate>
<div class="first block1 show">
<label for="firstname">Firstname:</label>
<input type="text" name="firstname" data-parsley-group="block1" required/>
<label for="lastname">Lastname:</label>
<input type="text" name="lastname" data-parsley-group="block1" required />
<span class="next btn btn-info pull-right" data-current-block="1" data-next-block="2">Next ></span>
</div>
<div class="second block2 hidden">
<label for="fullname">Email:</label>
<input type="text" name="fullname" required data-parsley-type="email" data-parsley-group="block2" />
<span class="next btn btn-info pull-left" data-current-block="2" data-next-block="1">< Previous</span>
<input type="submit" class="btn btn-default pull-right" />
</div>
</form>
您需要更改代码以指定用户当前正在使用的表单。我已经更改了您用于执行此操作的代码块,注释包括:
$(document).ready(function () {
$('.next').on('click', function () {
// Find the form whose button was just clicked
var currentForm = $(this).parents('form').first();
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)
// Use currentForm found above here, rather than hard coded form id
if (false === currentForm.parsley().validate('block' + current))
return;
// validation was ok. We can go on next step.
// Hide current block on current form
currentForm.find('.block' + current)
.removeClass('show')
.addClass('hidden');
// Show next block on current form
currentForm.find('.block' + next)
.removeClass('hidden')
.addClass('show');
});
});
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- Web编程,简单但适用于机器人项目
- JavaScript不适用于internet explorer和Firefox,但适用于谷歌
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 使jQuery自动完成功能适用于多个单词(“跳过”一个单词)
- 调整大小功能仅适用于一个维度
- 画布游戏 Json 功能仅适用于网页检查器
- 我的加载更多功能适用于按钮单击,但它不适用于滚动
- 适用于机场的 Google 地方信息自动填充功能
- 单击功能适用于无标签,但不适用于标签
- 使切换功能仅适用于单击打开的框,而不是所有框
- 一个功能适用于多个按钮
- 功能适用于移动狩猎
- 在windows上添加功能.Load只适用于相同的javascript
- 如何设置“全选”功能只适用于一页
- 欧芹.js - 一个多步骤功能适用于所有形式
- jQuery Touchable(适用于移动设备)禁用点击功能