首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parsley JS多步表单验证

Parsley JS多步表单验证
EN

Stack Overflow用户
提问于 2013-07-23 03:18:07
回答 2查看 1.6K关注 0票数 0

这是我的CoffeeScript

代码语言:javascript
复制
  wizard = $('#registrationWizard').wizard()
  $form = $('.finalize-form')

  $form.parsley
    inputs: 'input, select'
    excluded: 'input[type="hidden"]'

  wizard.on 'change', (e, data) ->
    e.preventDefault()
    p = $form.parsley 'validate'

    if p
      $('#registrationWizard').wizard 'next'
  .on 'finished', (e) ->
    if $form.parsley 'isValid'
      $form.submit()

在向导上激发change事件时,parsley将尝试验证整个表单,而不仅仅是当前步骤中的可见输入

EN

回答 2

Stack Overflow用户

发布于 2013-09-13 05:51:36

我相信他们有你在documentation中寻找的例子。首先,您需要设置一个侦听器,让它知道您只是在寻找可见的输入:

代码语言:javascript
复制
$( '#form' ).parsley( 'addListener', {
  onFieldValidate: function ( elem ) {

      // if field is not visible, do not apply Parsley validation!
      if ( !$( elem ).is( ':visible' ) ) {
         return true;
     }

      return false;
   }
} );

然后,当您完成向导中的步骤时,您可以通过简单地触发来验证可见元素:

代码语言:javascript
复制
$( '#form' ).parsley( 'validate' )

(我为缺少coffeescript道歉)

票数 1
EN

Stack Overflow用户

发布于 2013-12-17 06:54:45

如果整个表单都加载到DOM中,并且能够使用parsely,则可以运行多个验证,向导的每个步骤对应一个验证。为此,必须使用parsley-bind属性。类似于:

代码语言:javascript
复制
<form action="#">

    <!-- wizard step 1 --> 
    <div class='step1' parsley-validate parsley-bind>
       <input type="text" ..... />
       <input type="text" ..... />
    </div>

    <!-- wizard step 2 --> 
    <div class='step2' parsley-validate parsley-bind>
       <input type="text" ..... />
       <input type="text" ..... />
    </div>

    <!-- wizard step 3 --> 
    <div class='step1' parsley-validate parsley-bind>
       <input type="text" ..... />
       <input type="text" ..... />
    </div>

</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17795631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档