jQuery Smart Wizard v4 Step Validation 使用 jquery 验证插件

Posted

技术标签:

【中文标题】jQuery Smart Wizard v4 Step Validation 使用 jquery 验证插件【英文标题】:jQuery Smart Wizard v4 Step Validaton using jquery validation plugin 【发布时间】:2021-10-04 06:05:38 【问题描述】:

在这里,我在表单中使用 jQuery Smart Wizard v4,共有三个步骤,每个步骤都有一些输入字段。我的问题是,我需要在进行下一步之前验证每个字段。

我的表单中的 html 与此类似:

<form class="regform" action="" method="post" id="addNew_user">
  <div id="Regwizard">
    <ul>
      <li class="wizard-progressbar"></li>
      <li><a href="#step-1">Information</a></li>
      <li><a href="#step-2">Login</a></li>
      <li><a href="#step-3">Permissions</a></li>
    </ul>

    <div class="px-2 py-2">
      <div id="step-1">
        <h4>Enter the following user information</h4> 
        
        <div id="form-step-0">
          <div class="form-group">
            <label for="name">Name:</label>
            <input type="text" name="name" class="form-control" required />
          </div>
          <div class="form-group">
            <label for="name">Email:</label>
            <input type="email" name="email" class="form-control" required />
          </div>
        </div>
      </div>

      <div id="step-2">
        <h4>Enter the following login information</h4> 
      
        <div id="form-step-1">
          <div class="form-group">
            <label for="username">Username:</label>
            <input type="text" name="username" class="form-control" required />
          </div>
          <div class="form-group">
            <label for="name">Password:</label>
            <input type="password" name="password" class="form-control" required />
          </div>
        </div>
      </div>

      <div id="step-3" class="pt-0">
        <h4>Check the boxes below to access modules.</h4> 

        <div id="form-step-1">
          <div class="form-group">
            <input type="checkbox" name="module" value="1" /> Module Name
            <input type="checkbox" name="module" value="2" /> Module Name
          </div>
        </div>
      </div>
    </div>
  </div>
</form>

这是我在 jQuery 中尝试的方式:

$('#userRegwizard').smartWizard(
  theme: 'circles',
  useURLhash: false,
  showStepURLhash: false,
  autoAdjustHeight: true,
  transitionSpeed: 150,
  toolbarSettings: 
    toolbarPosition: 'bottom', 
    toolbarButtonPosition: 'right',
    showNextButton: false,
    showPreviousButton: false, 
    toolbarExtraButtons: [
      $('<div class="loader mr-3 d-none"><i class="fa fa-spinner fa-spin text-blue fa-2x"></i></div>'),
      $('<button class="btn btn-outline-secondary sw-btn-prev radius-l-1 mr-2px"><i class="fa fa-arrow-left mr-15"></i> Previous</button>'),
      $('<button class="btn btn-outline-primary sw-btn-next sw-btn-hide radius-r-1">Next <i class="fa fa-arrow-right mr-15"></i></button>'),
      $('<button class="btn btn-green sw-btn-finish radius-r-1 regThisUser"><i class="fa fa-check mr-15"></i> Submit</button>')
    ]
  
) 

.on("showStep", function(e, anchorObject, stepNumber, stepDirection) 

)

$('#addNew_user').validate(
  errorElement: 'span',
  errorClass: 'form-text form-error text-danger-m2',
  focusInvalid: false,
  ignore:  "",
  rules: 
    email: 
      email: true
    ,          
    username: 
      required: true,
    ,
    password: 
      required: true,
      minlength: 5
    ,
    password_conform: 
      required: true,
      minlength: 5,
      equalTo: "#password"
    
  
) 

$('#userRegwizard').on("leaveStep", function(e, anchorObject, stepNumber, stepDirection) 
  var elmForm = $("#form-step-" + stepNumber);
  if (stepDirection == 'forward' && elmForm) 
    if ($('#addNew_user').valid()) 
        return true
     else 
        return false
    
  
  //return true;
)

但是这个js 代码对我不起作用。这意味着我不能进入下一步,但如果我从leaveStep 方法中删除验证码,它就会进入下一步。有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:
ignore:  "",

为什么将ignore 设置为“无”?这意味着插件不会忽略任何内容并验证所有内容。

因此,当您调用 .valid() 时,它会验证表单上的每一个输入,甚至是您看不到的其他步骤中的空输入...这就是您被卡住的原因。

完全删除ignore 选项以恢复忽略隐藏输入并仅验证显示内容的默认行为。

【讨论】:

谢谢你的回答...让我检查一下

以上是关于jQuery Smart Wizard v4 Step Validation 使用 jquery 验证插件的主要内容,如果未能解决你的问题,请参考以下文章

Smart Text Re sizer ala jQuery(和cookies)

jquery smart-zoom怎么用

Fuel UX - 挂钩向导的更改事件

原创技术分享200SMART通过TCP协议创建到另一设备的链接

jQuery 突出显示在 bootstrap v4 按钮上不起作用

wizard怎么念