【发布时间】:2016-05-09 19:35:41
【问题描述】:
我们知道有几个插件可以在 HTML 表单上使用 jQuery 执行验证。
我们使用 jQuery Datatables,使用 DataTables Editor 进行内联编辑。
https://editor.datatables.net/examples/api/clientValidation.html
问题是每次提交一行时,每行中有几个字段是可编辑的,我们真的不想继续编写“if-else”条件来验证所有可能的可编辑列。
当用户编辑cell时,我们得到的是一个JSON名值数组(当前Row数据),例如这种格式,
var rowData = {
fld_name1: "value1",
fld_name2: "value2",
fld_name3: "value3"
fld_name4: "value4"
fld_name5: "value5"
}
想检查我们是否可以将此数组提供给任何验证规则数组,例如 jQuery 验证插件使用的格式,https://jqueryvalidation.org/files/demo/
rules: {
fld_name1: "required",
fld_name2: "required",
fld_name3: {
required: true,
minlength: 2
},
fld_name4: {
required: true,
minlength: 5
},
fld_name5: "required"
},
并检查当前的“rowData”是否与“rules”数组中定义的规则验证良好。
这里的“rowData”数组是动态数组,为Datatable中的每一行创建了1个单独的实例。
HTML 表单元素(文本字段)也是由 jQuery 数据表编辑器动态生成的。所以没有在 jQuery Validation Plugin 上设置表单类型初始化的选项。
我很擅长使用可以提供此运行时数组验证功能的任何可用的 jQuery 验证。
【问题讨论】:
-
JQuery 数据表编辑器动态生成输入表单字段和相关信息。没有我们可以调用 .validate() 的包装形式。即使尝试这样做,它也会对现有的数据表编辑器逻辑/侦听器产生其他干扰。将 JSON 数组(行数据)与验证规则匹配的简单解决方案。正在检查此行中的解决方案,该解决方案可以将“rowData”中的规则与“rules”匹配,并为“rowData”中的数据不匹配或有错误的规则输出任何验证消息。
-
问题是寻求将“rowData”(动态 JSON 命名数组)与“规则”(预定义验证规则)匹配的解决方案。不知道为什么这个问题被降级。我试图找到一个真正问题的解决方案(“比较 JSON 命名数组”与“验证规则”),而不需要重新发明所有验证规则的轮子。 JQuery Validation Plugin 似乎已经完成了针对不同验证组合的所有研究。公开功能不仅可以比较表单,还可以比较动态 JSON(键:值对)数组,这将使其更加动态和有用的实用插件。
标签: jquery datatables jquery-validate