我花了很长时间才发现JQuery表单验证插件仅适用于具有“name”属性的字段。
无论如何,我用它来制作所需的所有字段。
我的问题是,在某些时候,我有一个文字输入
<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的情况下使用插件,还是有其他解决方案?
答案 0 :(得分:2)
是的,你可以做到,但有局限性
限制:在使用不同规则时,您无法灵活地更改消息。
<form ="validationForm">
<input type="text" class="required" title="required message" />
</form>
jQuery("#validationForm").validate();
答案 1 :(得分:1)
引用OP:
“有没有办法使用插件而不使用名称attr”
不,如果您的所有字段都没有name
属性,则无法使用jQuery Validate插件。
标记建议
对于输入元素,name属性是''''''' 如果没有它,验证插件就无法运行。
“解决方法”是让jQuery在创建新输入时创建唯一名称。
答案 2 :(得分:1)
我应该为动态添加的新输入做些什么?
给他们一个名字,任何名字
有没有办法在不使用名称attr的情况下使用该插件?
没有
还有其他解决方案吗?
这取决于你对这些字段做了什么 - 显然你不需要为了使jquery验证工作的任何其他原因而在它们上面有一个名字,所以为什么你不只是编造一个名字并将它们全部调用是什么?
更正 - 需要唯一名称才能看到评论
var i = 0;
$("#add-choice").live("click",function(){
$("#choices").append("<input type='text' name='bob" + i + "' class='required'/><br>");
i = i + 1;
});