Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将隐藏的div和输入设置为可选,以便使用jquery.validate提交有效表单_Javascript_Jquery_Html_Forms_Jquery Validate - Fatal编程技术网

Javascript 将隐藏的div和输入设置为可选,以便使用jquery.validate提交有效表单

Javascript 将隐藏的div和输入设置为可选,以便使用jquery.validate提交有效表单,javascript,jquery,html,forms,jquery-validate,Javascript,Jquery,Html,Forms,Jquery Validate,我有一个表格,可能只有一页,也可能是两页,这取决于申请的是一个人还是两个人。我现在正在做的是启用一个链接,允许用户通过onchange事件访问其共同申请人的下一组表单元素,该事件显示将滑动切换第一个用户输入并显示其他用户输入的链接。这是一个相当长的表单,因此我将其缩减为几个元素,以便可以将其进行修改: 因此,理论上,用户可以输入字段并点击submit,表单要么有效,要么抛出一些错误。或者,用户可以添加一个共同申请人,并在切换到下一组输入之前在链接上验证表单 关于如何将所有这些绑定到一个按钮并使

我有一个表格,可能只有一页,也可能是两页,这取决于申请的是一个人还是两个人。我现在正在做的是启用一个链接,允许用户通过onchange事件访问其共同申请人的下一组表单元素,该事件显示将滑动切换第一个用户输入并显示其他用户输入的链接。这是一个相当长的表单,因此我将其缩减为几个元素,以便可以将其进行修改:

因此,理论上,用户可以输入字段并点击submit,表单要么有效,要么抛出一些错误。或者,用户可以添加一个共同申请人,并在切换到下一组输入之前在链接上验证表单

关于如何将所有这些绑定到一个按钮并使其与jquery.validate配合使用,您有什么想法吗?

您不能动态地“切换”输入字段的规则

但是,您可以使用动态添加/更改/删除规则,这本质上模仿了切换的行为

此外,由于您讨论的是隐藏字段,因此需要禁用使验证忽略所有隐藏字段的选项

ignore: []

这篇文章太长了,不能通读,但我会给你最后一篇。可能您只希望在某些条件下需要某些字段:
required:function(element){return$(“.applicationType”).val()=='joint';}
我想我明白您的意思了。我从那条路开始。谢谢。好的,如果我理解正确的话,那么您的意思是,表格第二部分的所有规则(可能会使用,也可能不会使用,取决于select)都应该从没有规则开始,这样他们就不需要提交表格了。但是,一旦更改select,将允许用户访问隐藏的元素,然后动态添加规则,并根据所识别的更改将它们添加到元素中。另外,我必须保留忽略,因为表单的第一部分有一些字段是隐藏的,除非用户选择另一个选项。给了你胜利,因为你给了我正确的方向。再次谢谢你,斯帕奇。所以它的工作原理是这样的,但我仍然需要找到一种方法,让同一个按钮用于单页验证和提交,或者用于验证,然后滑动切换到下一个组。我想我可以在更改时向按钮和表单处理器添加一些属性和标记。@isaacweathers,我喜欢使用完全独立的
标记集和
.validate()的不同实例执行多步骤表单。这样,我就不必担心切换隐藏字段。我曾想过用这种方式来构建它,但我不想改变目前存在的约束条件。。。它必须是一种形式。但是是的,那样会更容易。谢谢你链接到其他的提琴。事实上,我想我可能接近我需要的,但需要清理脚本。让我知道你的想法。似乎在按我需要的方式工作。
  $('#refiLoanForm').validate({
    onkeyup: false,
    ignore: ":disabled",
    submitHandler: function (form) { // for demo
        alert('valid form');
        return false;
    }
});
$("#singleSubmitBtnLoan").bind('click', function () {
    $('#refiLoanForm').valid();
});
//Handle the content being shown
$("#singleSubmitBtnLink2").on('click', function () {
    $("#primary-applicant").slideToggle("slow");
    $("#co-applicant").slideToggle("slow");
});
$("#backToPrimary").on('click', function () {
    $("#primary-applicant").slideToggle("slow");
    $("#co-applicant").slideToggle("slow");
});
$('#applicationType').on('change', function() {
    if ($(this).val() === 'joint') {
        $('.primaryApplicantSwitch').slideToggle("slow");
        $('.jointApplicantSwitch').slideToggle("slow");
    } else {
        $('.primaryApplicantSwitch').slideToggle("slow");
        $('.jointApplicantSwitch').slideToggle("slow");
    }
});
ignore: []