独立验证表单片段

2024-04-07

我有一个非常大的表格,我以类似向导的方式将其分成四个部分。向导插件(智能向导)具有当前处于焦点的表单段,而其余 3 个段隐藏在 dom 中。

我正在使用 jquery 验证插件来动态验证表单。问题是验证所显示的表单部分。仅当用户进入下一步时,我才想对表单的该部分运行验证。

有没有办法指定元素数组来验证触发的任何验证插件?

在向导插件的 onLeaveStep 选项中,我调用了 validate 插件。无论用户是否点击下一个或上一个验证,都会被触发。

    var $myform = $("#registeration");
    var validator = $myform.validate({
        errorElement: "span",
        rules: {
            regtype: "required",
            firstname: "required",
            lastname: "required",
            address1: "required",
            city: "required",
            country: "required",
            phone1: "required",                 
            email: {
                 required: true,
                 email: true
            },
            attendees: {
                required: true,
                digits: true
            }
        },
        messages: {
            regtype: "Select an option",
            firstname: "Enter your first name",
            lastname: "Enter your last name",
            address1: "Enter your address",
            city: "Enter your city",
            country: "Enter your country",
            phone1: "Enter your phone number",
            email: "Enter your e-mail",
            attendees: "Enter number of persons attending (including yourself)"
        }               
    });
    // Initialize Smart Wizard      
    $('#wizard').smartWizard({
        transitionEffect:'slide',
        hideButtonsOnDisabled:true,
        transitionEffect: 'fade',
        onLeaveStep: function(){
            if(validator.form()){
                //$myform.trigger('submit');
                return true;
            }else{
                return false;
            }           
        }
    });

引用OP:

》在向导插件的onLeaveStep选项中,我调用了validate插件。无论用户是否点击next or previous将触发验证”

问题是.validate()不是“测试”表格有效性的方法。相当,.validate()的方法是初始化表单上的插件。你会做的once页面加载和任何后续调用.validate()被忽略。

要使用 jQuery Validate 插件以编程方式测试表单,您可以使用the .valid() method http://jqueryvalidation.org/valid/它触发测试并返回一个布尔值。

默认情况下,jQuery Validate 插件也会忽略任何“隐藏”输入元素。因此,也许您可​​以在使用向导插件时利用此功能来发挥自己的优势。

在你的 DOM 就绪处理程序中...

$('#myform').validate({
   // rules & options
});

在你的巫师之内...

onLeaveStep: function(){
    $('#myform').valid();
}

否则,当我创建多步骤表单时,我会使用一组独特的form每个部分的标签。然后我用.valid()在进入下一个部分之前测试该部分。 (不要忘记首先初始化插件,调用.validate(),当页面完全加载时在每个表单上。)然后在最后一部分,我使用.serialize()在所有部分上并将每个部分连接成要提交的数据查询字符串。

像这样的东西...

$(document).ready(function() {

    $('#form1').validate({
        // rules
    });

    $('#form2').validate({
        // rules
    });

    $('#form3').validate({
        // rules,
        submitHandler: function (form) {
           // serialize and join data for all forms
           // ajax submit
           return false;
        }
    });

    $('#gotoStep2').on('click', function() {
        if ($('#form1').valid()) {
            // code to reveal step 2
        }
    });

    $('#gotoStep3').on('click', function() {
        if ($('#form2').valid()) {
            // code to reveal step 3
        }
    });

    // there is no third click handler since the plugin takes care of this with the
    // built-in submitHandler callback function on the last form.

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

独立验证表单片段 的相关文章

  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 如何让 jquery Tooltipster 插件适用于新创建的 DOM 元素?

    我正在使用 Tooltipster 插件http calebjacob com tooltipster http calebjacob com tooltipster 这很棒 但我已经动态生成了插入到 DOM 中的内容 工具提示程序似乎没有
  • IE 中的 jQuery .width(val) 错误 - 无效参数

    通过ajax加载内部div book table 后 我想调整正文的宽度以适应更大的内容 var new width parseInt book table css width 407 body width new width 在 FF 和
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 显示覆盖以覆盖整个页面

    我有一个正在加载的网络应用程序iframe 我需要显示一个覆盖 div 来覆盖整个页面 问题是叠加层当前仅显示在iframe区域而不覆盖整个页面 我们的应用程序 子应用程序 是加载的一组应用程序的一部分iframe 你可以做这样的事情 di
  • jQuery 插件,用于带有自动建议的逗号分隔标签的简单输入框

    我正在寻找具有以下功能的 jQuery 插件 它应该显示一个输入框 其中的标签将如下所示 蜜蜂 珠子 胡须 当用户键入标签时 它应该显示一个自动建议框供用户输入 显示应该简单明了 只是纯文本逗号分隔标签 它应该允许包含空格键的标签 例如 有
  • jQuery:查找文本并替换为 HTML

    我尝试查找并替换文本 使用 jQuery 实际上我正在尝试在文本周围添加一个 span 元素 我还应该能够再次删除跨度而不会丢失里面的文本 例如 假设我有以下情况 span This is a span element span 我希望能够
  • 具有有限行数和字符数限制的文本区域

    我需要具有 TextArea 的功能 1 maximum total lines 6 and 2 in each line there must be maximum of 16 chars 3 if user enters 17th ch
  • 调用“DOMNodeInserted”事件时添加元素

    我想在每个 喜欢 按钮 chrome 扩展 之后添加一个元素 由于帖子被添加到新闻提要而不刷新页面 我必须添加一个事件侦听器 DOMNodeInserted 但是当我尝试把after 里面的功能 它不起作用 Code contentArea
  • 如果我拒绝确认,如何防止更改选择框值

    我正在使用国家 地区选择框 当用户选择一个国家 地区时 会出现添加分支链接 并且用户在该国家 地区下添加分支 但是当用户想要更改国家 地区时 则应销毁有关该国家 地区的所有分支 在更改国家 地区之前 会出现一个确认框并显示警告 一切正常 但
  • jQuery 中的 Javascript .files[0] 属性

    jQuery 中是否有与此语句等效的语句 var value document getElementById id files 0 使用附加 files 0 的标准 jQuery 选择器似乎不起作用 并且我找不到与 files 等效的 jQ
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • Fancybox 画廊组

    我正在使用 fancyboxhttp fancyapps com fancybox http fancyapps com fancybox 我的问题是 我可以将不同的资源组合在一起吗 我的意思是同一画廊 或 组 中带有内嵌或视频的图像 如果
  • 有没有非常轻的灯箱? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • jQuery:动态添加 DOM 元素时尝试将函数挂钩到 onclick,但它立即执行该函数

    我正在使用 jQuery 动态 我的意思是在运行时 向页面的 DOM 添加一个 span 元素 create add task button document createElement span attr id activityNameH

随机推荐

  • fosuserbundle 找不到“GET /login/”的路由

    我最近使用composer更新了symfony2 现在无法登录 这是相关文件 如果需要更多数据 请告诉我 应用程序 配置 路由 yml app admin resource AppAdminBundle Resources config r
  • div 内的 P 标签:将 margin-top 设置为 p 标签也会将父 div 向下推

    我一直试图弄清楚为什么在 p 标签上设置 margin top 100px 会使其父元素随之下降 我想不通 有人有什么想法吗 http jsfiddle net HU4pR http jsfiddle net HU4pR HTML div
  • 一个视图可以有两个视图模型作为其数据上下文吗?

    我在一个视图中有两个数据网格 但这些数据网格的 ItemsSource 集合位于不同的视图模型中 那么是否可以将这两个数据网格与两个不同视图模型中的集合绑定在一起 选择结合两者的视图模型 public class ViewModelA pu
  • 使用 CASE WHEN ... IS NOT NULL 与 ISNULL/COALESCE 的效率

    考虑以下场景 存在三种实体 例如Foo Bar and Baz Every Foo必须与一个相关联Bar or a Baz 但不能同时进行 该场景已通过以下方式实现 一共有三张表 Foo Bar and Baz Foo有两个外键字段 Bar
  • 将两个不同的 ActiveRecord 集合合并为一个

    我想创建所有公司活动的可视化时间表 时间线的 HTML 是使用loop 为了简单起见 我们假设两个模型Hire Deal 两种型号都有一个date属性和一些模型特定的属性 我如何合并ActiveRecord两个模型的结果 然后order组合
  • 如何在SoundManager2中添加歌曲进度条?

    我正在尝试添加一个进度条来显示歌曲在播放过程中所处的位置 它只需要一个简单的解决方案 我在网上找到了一些代码 其中使用了SoundManager2http www schillmania com projects soundmanager2
  • Google 脚本 - 表单 - 删除分页符/部分时出现问题 - “无效数据更新表单”

    当我尝试迭代表单中的项目并删除它们以为新的部分 问题让路时 我遇到了以下代码的问题 但是 我有时会收到以下错误 无效的数据更新表单 我已经多次解决这个问题 但它不断出现 我当前的解决方法是将部分标题设置为 这样就可以删除它 以前 直到今天我
  • 如何从一组点中绘制最大的多边形

    所以 我有一组点 x y 并且我希望能够以这些点作为顶点绘制最大的多边形 我可以在 matplotlib 中使用 patch Polygon 但这只是按照我给出的顺序在点之间绘制线条 这不会自动执行我想要的操作 举个例子 如果a想要画一个正
  • 如何在UIActionSheet中显示自定义视图?

    我有一个带有日期选择器的 UIView 我想将其显示在操作表中 我正在使用以下代码 IBAction button click id sender UIActionSheet sheet UIActionSheet alloc initWi
  • RAILS 用户层次结构;班级、协会。多态性?

    我很惊讶找到一个明确的答案是多么困难 这似乎很常见 我一定是看错了 我们有用户 他们的授权角色运行类似 角色 w 管理员版主老师学生被禁止 通常建议使用 ROLES 字段和单表继承 如here https stackoverflow com
  • jQuery UI 自动完成:当没有搜索匹配时返回“未找到”

    这里是新手编码员 我有一个带有 jQ uery 自动完成功能的搜索栏 通过本地 json 数组进行搜索 当没有找到匹配项时 我想返回一个字符串 Nothing found 我已经尝试过 grep 中的 if 语句 但到目前为止没有任何效果
  • 如何在 odoo 中打印重复的 qweb 报告?

    我创建了一份运行良好的报告 现在我在表单的标题名称 打印重复 中创建了一个按钮 它将打印相同的报告 但是 当我点击 打印副本 按钮 我想在报告顶部打印 重复报告 截屏 https i stack imgur com Hiu67 png 单击
  • gulp通过markdown json用jade生成html文件

    我在用着gulp markdown to json and gulp jade 我的目标是从 markdown 文件中获取数据 如下所示 template index jade title Europa This is a test gra
  • 更改 TFS 工作项类型

    是否可以更改 TFS 工作项的类型 例如 我有一个 Bug 我想将其更改为更改请求 如前所述 您无法直接更改工作项类型 但是有一个很好的快捷方式可以为您在这些情况下节省大量时间 它将自动复制更改集 测试用例等的链接 右键单击您的工作项并选择
  • 无法使用类型为“(start: String.Index, end: String.Index)”的参数列表调用类型“Range”的初始值设定项

    let greenHex hex substring with Range
  • Postgres regr_slope 返回 NULL

    有人可以帮我了解一下情况吗regr slope数据集中有行时返回 NULL 例如 log gt select from sb1 order by id ts id elapsed ts 317e 86 1552861322 627 317e
  • Xcode 自定义字体未显示在 Storyboard 中

    我将两种字体添加到我的项目文件夹中 我将它们添加到 info plist 中 我在故事板的自定义字体列表中看不到它们 我做错了什么 我知道这是一个很老的问题 但我遇到了同样的问题 而且上述提示对我不起作用 除了标准检查 存在于捆绑包中 重新
  • Rspec 不删除 2 个特定表

    我正在使用 Rspec 来测试 Rails 应用程序 我有 2 个导入数据的表 测试数据库和开发数据库 整个应用程序依赖于表数据 这意味着整个功能是匹配 计算和测量该表中的数据并将其放入其他表中 因此 在测试时 删除这些表的数据是没有意义的
  • 为什么java没有byte类型后缀? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 独立验证表单片段

    我有一个非常大的表格 我以类似向导的方式将其分成四个部分 向导插件 智能向导 具有当前处于焦点的表单段 而其余 3 个段隐藏在 dom 中 我正在使用 jquery 验证插件来动态验证表单 问题是验证所显示的表单部分 仅当用户进入下一步时