我有一个用于创建产品记录的表单,其中包含(用户控制的)动态条目(即产品可以有N个选项(例如不同的颜色,或不同的颜色等,也可能有不同的价格)。用户添加了必要时每个选项的字段集。当然,大多数产品只有一个版本(因此只有一个选项),所以在这种情况下,没有必要提供选项名称,只需要一个价格。所以选项名称字段是仅在表单上有多个选项价格字段时才进行验证。
$('.iprice').each(function() {
$(this).rules('add', {
required: true,
number: true,
*/ messages : { required:'enter price', number:'enter only price' } */
});
});
$('.iname').each(function() {
$(this).rules('add', {
required: function(){
if ($('[name="attr[2][price]"]').length) {
return true;
} else {
return false;
}
},
/* messages: function(){
if ($('[name="attr[2][price]"]').length) {
return 'option name?';
}
} */
});
});
如上所述,验证工作正常。 (见jsfiddle here)。但是,您会注意到验证中有两个注释掉的部分提供自定义消息。如果包含这些,则一旦引用任何一个字段中存在值,则提交按钮将返回错误。
“{”error“:”Shell表单不验证{'html_initial_name':u'initial-js_lib',...“
据我所知,语法是正确的,方法是正确的。谁能看到我哪里出错?
(我意识到我可以通过为每个元素创建data-msg-required =“?? xx ??”属性以其他方式解决问题,但这有点不优雅且冗长。)
有什么想法吗?
Here is another jsfiddle显示只有一组选项的表单。已启用价格字段的自定义消息,但是,如果取消注释名称字段的自定义消息,则验证将在提交时崩溃。
答案 0 :(得分:0)
将您的插件升级到最新版本。 (1.11.1)