9

好吧,我花了足够长的时间才发现 JQuery 表单验证插件仅适用于具有“名称”属性的字段。

无论如何,我用它来制作所有必需的字段。

我的问题是,在某些时候,我有一个文本输入

<div id='choices'>
  <input type='text' />
</div>
<a href='#' id='add-choice' >Add input </a>

用户可以根据需要添加任意数量的文本输入:

$("#add-choice").live("click",function(){
                    $("#choices").append("<input type='text' /><br>");
});

我希望这些新字段也是必需的。即使我给第一个输入命名。对于动态添加的新输入,我应该怎么做?

有没有办法在不使用名称 attr 的情况下使用插件,还是有其他解决方案?

4

3 回答 3

2

对于动态添加的新输入,我应该怎么做?

给他们一个名字,任何名字

有没有办法在不使用名称 attr 的情况下使用插件?

还有其他解决方案吗?

这取决于您对这些字段所做的事情 - 除了让 jquery 验证工作之外,您显然不需要它们的名称,那么您为什么不只是编一个名称并调用它们呢?

更正 - 需要唯一名称见评论

var i = 0;
$("#add-choice").live("click",function(){
 $("#choices").append("<input type='text' name='bob" + i + "' class='required'/><br>");
 i = i + 1;
});
于 2013-05-29T14:39:44.970 回答
2

是的,你可以做到,但有局限性

限制:在使用不同规则时,您将无法灵活地更改消息。

<form ="validationForm">
<input type="text" class="required" title="required message" />
</form>

jQuery("#validationForm").validate();
于 2015-05-20T11:15:47.753 回答
1

引用操作:

“有没有办法在不使用名称 attr 的情况下使用插件”

name不,如果您的所有字段都没有属性,则不能使用 jQuery Validate 插件。

根据文档:

标记建议

name 属性对于输入元素是“必需的”,没有它,验证插件将无法工作。

“解决方法”是让 jQuery在创建新输入时创建一个唯一名称。

于 2013-05-29T14:38:05.500 回答