【问题标题】:Form Validation on Jquery-steps: undefined is not a function on .validate() functionJquery-steps 上的表单验证:未定义不是 .validate() 函数上的函数
【发布时间】:2014-06-07 18:06:06
【问题描述】:

我不明白发生了什么。 我尝试使用 Jquery-steps 实现表单验证,当我单击下一步按钮时,我的表单应该得到验证。但事实并非如此,它在验证函数上返回错误。

这是我的脚本

$(function () {
  $("#form-3").steps({
    bodyTag: "fieldset",
    onStepChanging: function (event, currentIndex, newIndex) {
        // Always allow going backward even if the current step contains invalid fields!
        if (currentIndex > newIndex) {
            return true;
        }

        // Forbid suppressing "Warning" step if the user is to young
        if (newIndex === 3 && Number($("#age").val()) < 18) {
            return false;
        }

        var form = $(this);

        // Clean up if user went backward before
        if (currentIndex < newIndex) {
            // To remove error styles
            $(".body:eq(" + newIndex + ") label.error", form).remove();
            $(".body:eq(" + newIndex + ") .error", form).removeClass("error");
        }

        // Disable validation on fields that are disabled or hidden.
        form.validate().settings.ignore = ":disabled,:hidden";

        // Start validation; Prevent going forward if false
        return form.valid();
    }
  });
});

我是否需要一个表单验证 js 文件来完成这项工作? 我尝试了一些表单验证 js 文件,但仍然无法正常工作。 谢谢。

这是我的html代码

<form id="form-3" action="#">
<h1>Account</h1>
<fieldset>
    <legend>Account Information</legend>

    <label for="userName">User name *</label>
    <input id="userName" name="userName" type="text" class="required">
    <label for="password">Password *</label>
    <input id="password" name="password" type="text" class="required">
    <label for="confirm">Confirm Password *</label>
    <input id="confirm" name="confirm" type="text" class="required">
    <p>(*) Mandatory</p>
</fieldset>

<h1>Profile</h1>
<fieldset>
    <legend>Profile Information</legend>

    <label for="name">First name *</label>
    <input id="name" name="name" type="text" class="required">
    <label for="surname">Last name *</label>
    <input id="surname" name="surname" type="text" class="required">
    <label for="email">Email *</label>
    <input id="email" name="email" type="text" class="required email">
    <label for="address">Address</label>
    <input id="address" name="address" type="text">
    <label for="age">Age (The warning step will show up if age is less than 18) *</label>
    <input id="age" name="age" type="text" class="required number">
    <p>(*) Mandatory</p>
</fieldset>

<h1>Warning</h1>
<fieldset>
    <legend>You are to young</legend>

    <p>Please go away ;-)</p>
</fieldset>

<h1>Finish</h1>
<fieldset>
    <legend>Terms and Conditions</legend>

    <input id="acceptTerms" name="acceptTerms" type="checkbox" class="required"> <label for="acceptTerms">I agree with the Terms and Conditions.</label>
</fieldset>
</form>

【问题讨论】:

  • 您也可以发布您的 HTML sn-p 吗?
  • 嗨 @SelvarajMA 我刚刚发布了我的 HTML 代码

标签: jquery jquery-steps


【解决方案1】:

您需要从以下位置添加 jQuery 验证插件: http://jqueryvalidation.org/

【讨论】:

  • 只要添加一条评论,这会影响 JQuery 步骤,以防其他人正在搜索它。 JQuery Steps 在使用它没有在任何特定位置指定的 css 和脚本文件(如 jquery.validate)方面做得很好。
  • 是的,您还需要 CSS 文件 (jquery.steps.css) 以及 js 文件:github.com/rstaib/jquery-steps/tree/master/demo/css
【解决方案2】:

jquery-steps documentation 没有任何称为 validate 和 valid 的方法。请检查您是否包含了表单验证插件

【讨论】:

  • 你能做一个小提琴吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多