Javascript 是否将动态创建的表单元素添加到jquery.validate?

Javascript 是否将动态创建的表单元素添加到jquery.validate?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我的问题似乎与相同,但这里给出的答案似乎不适合我。我正在使用query.validate插件,它可以很好地用于我的大多数表单。但是,我有一个按钮,可以将一行添加到包含多个输入元素的表中。我用于添加表单输入元素的代码如下: var table=document.getElementById('flightlegs'); var rowCount=table.rows.length-1; var row=table.insertRow(rowCount); ... var cell4=row.ins

我的问题似乎与相同,但这里给出的答案似乎不适合我。我正在使用query.validate插件,它可以很好地用于我的大多数表单。但是,我有一个按钮,可以将一行添加到包含多个输入元素的表中。我用于添加表单输入元素的代码如下:

var table=document.getElementById('flightlegs');
var rowCount=table.rows.length-1;
var row=table.insertRow(rowCount);
...
var cell4=row.insertCell(3);
var element4=document.createElement("input");
element4.type="text";
element4.size="3";
element4.setAttribute("required", "required");
element4.maxlength="3";
element4.name="legto";
element4.id="legto"+rowCount;
cell4.appendChild(element4);
$('#legto'+rowCount).rules('add', {required:true});
...(more of the same for other cells)...
好的,这可能不是最好的方法(我是javascript新手),但它确实会根据需要添加输入字段。但是,在点击提交时,这些新字段不包括在验证中。这里我遗漏了什么?

jquery.validate“只为每个名称选择第一个元素,并且只选择那些指定了规则的元素”(查看插件的源代码,该函数名为
elements
,在第450行定义)

在您的情况下,每个新添加的表单元素都有名称
legto
,这将导致jquery.validate仅选择具有该名称的第一个表单元素,并放弃剩余的wrt表单验证

下面是您如何解决此问题的方法

element4.name="legto"+rowCount;