Javascript 向jquery validate动态添加规则会导致错误

Javascript 向jquery validate动态添加规则会导致错误,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,我正在使用jqueryvalidate验证我的动态表单。 我在html上有一个下拉列表,值为1,2,3,4。 如果从下拉列表中选择1,我将显示一个div和一些字段,如果选择2,我将显示div1+另一个div和一些新字段,依此类推3和4 所有字段都以一种形式出现 <form name="client_basic_details" id="client_basic_details" method="post" action="

我正在使用jqueryvalidate验证我的动态表单。 我在html上有一个下拉列表,值为1,2,3,4。 如果从下拉列表中选择1,我将显示一个div和一些字段,如果选择2,我将显示div1+另一个div和一些新字段,依此类推3和4

所有字段都以一种形式出现

<form name="client_basic_details" id="client_basic_details" method="post" action="...">
        <select  name="applicant_num" id="applicant_num">
                <option value="">-- Select --</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
        </select>
        <div id="applicant_1">
        <input type="text" name="app_1_fname" id="app_1_fname">
        <input type="text" name="app_1_mname" id="app_1_mname">
        <input type="text" name="app_1_lname" id="app_1_lname">
        </div>
        <div id="applicant_2">
        <input type="text" name="app_2_fname" id="app_2_fname">
        <input type="text" name="app_2_mname" id="app_2_mname">
        <input type="text" name="app_2_lname" id="app_2_lname">
        </div>
        <div id="applicant_3">
        ....
        </div>
        <div id="applicant_4">
        ...
        </div>
    </form>
对于前5个选项,规则被附加到validate methode,但在这之后,我在控制台中遇到了这个错误

TypeError:元素未定义

var设置=$.data(element.form,'validator')。设置

而不是通过我使用的每个语句添加规则 但其结果与上述错误消息相同

请建议

我正在document.ready函数中添加验证方法

编辑:

在这里拉小提琴:

我想为进一步的表单(如2,3,4)添加规则

PS

我在这里面临的最大问题是:

在比较中,很明显,默认情况下jquery验证器会忽略1.9版本中的所有隐藏元素,而1.8会验证页面中的每个控件,无论它们是可见的还是不可见的


要向隐藏输入添加规则,必须忽略隐藏属性:

$.validator.setDefaults({ ignore: []});

只需将规则添加到其他字段的validate调用中。默认行为是,当它们不可见时,将不会对其进行验证,但当它们可见时,将对其进行验证。我想这就是你想要的

因此,如果将其添加到规则对象中:

        applicant2_salutation: {
                    required: true
            }
这将导致需要“敬礼”,但仅当应用程序2可见时


工作示例:

字段未隐藏。它们是普通文本文件,但未向用户显示。如果用户从下拉列表中选择它,则会显示。为什么要进行下拉投票?您也可以建议使用fiddle,而不必这样做。根据您的建议,我使用我的代码执行了此操作,但很明显,它会验证validate调用中包含的所有字段,即使它们不可见。谢谢@Ryley为我工作。预加载的其他js正在产生问题
$.validator.setDefaults({ ignore: []});
        applicant2_salutation: {
                    required: true
            }