因此,在创建新记录时,我有一个JSP循环创建选择菜单。我想要完成的规则是:
选择这些中的至少一个,可以是50个或更多。就是这样。对我来说似乎很简单,但由于某种原因我有点卡住...每个选择菜单的新规则必须在飞行中创建吗?我可以用1条规则验证整个组吗?
这是HTML / JSP:
<select class="reccomendations"
name="selQuarantineRec"
required>
<option value="">Select...</option>
<c:forEach items="${qrntRecommendations}" var="qrntRec"
varStatus="idx">
<option value="${determination.id}_${ qrntRec.key }">
<c:out value="${ qrntRec.value.name } "/>
</option>
</c:forEach>
</select>
这是JS:
ns.util.validate('#nis_pest_form', {
rules: {
"selQuarantineRec": { //name of the select elements
require_from_group: [1, '.reccomendations']
}
}
});
感谢您的阅读和帮助,如果可以的话! 干杯 -b
答案 0 :(得分:0)
引用OP:
“必须动态创建每个选择菜单的新规则吗?”
是。首次初始化插件后,您只能使用插件提供的方法声明新规则。请参阅the .rules('add')
method。
创建新元素,然后调用它......
$('#myselect').rules('add', { // <- select a single element
require_from_group: [1, '.reccomendations']
});
如果一次创建多个元素,则必须将其包装在jQuery .each()
中......
$('.select').each(function() { // <- select a group of elements
$(this).rules('add', {
require_from_group: [1, '.reccomendations']
});
});
注:
如果您使用与class
相同的require_from_group
选择器,则可以将代码压缩为此...
$('.reccomendations').each(function() {
$(this).rules('add', {
require_from_group: [1, this]
});
});
“我可以使用1条规则验证整个组吗?”
没有。您必须将规则应用于组中的每个元素。
重要强>:
无论您如何创建元素并声明规则,每个元素必须包含唯一的name
属性。这就是插件跟踪输入的方式。