Formvalidation 验证器跨字段

Posted

技术标签:

【中文标题】Formvalidation 验证器跨字段【英文标题】:Formvalidation validators cross fields 【发布时间】:2017-08-31 14:06:48 【问题描述】:

我花了将近 3 个小时试图理解为什么下面的代码块验证所有输入都是数字:

<td class="form-group">
  <input class="form-control" type="text" name="units[]" id="units_0" value="1" size="2" data-fv-notempty="true" data-fv-notempty-message="Valor Requerido" data-fv-regexp="true" data-fv-regexp-regexp="^[0-9]+$" data-fv-regexp-message="Introducir Valor Entero" onchange="calcAmount(this)"/>
</td>

<td class="form-group">
  <input class="form-control" type="text" name="concepts[]" id="concepts_0" size="50" data-fv-notempty="true" data-fv-notempty-message="Introducir Concepto" data-fv-regexp="true" data-fv-regex-regexp="^[0-9|a-z|A-Z|-]4$" data-fv-regexp-message="Al menos 4 Caracteres Válidos"/>
</td>

<td class="form-group">
  <input class="form-control" type="text" name="amounts[]" id="amounts_0" size="10" data-fv-notempty="true" data-fv-notempty-message="Valor Requerido" data-fv-regexp="true" data-fv-regexp-regexp="^[0-9]+|[0-9]\.[0-9]+$" data-fv-regexp-message="Valor Numérico esperado" onchange="calcAmount(this)"/>
</td>
<td class="form-group">
  <input class="form-control" type="text" name="subtots[]" value="0.00" id="subtots_0" size=10 readonly/>
</td>
<td class="col-xs-1">
  <a class="badge bg-green addButton"><i class="fa fa-plus-circle"></i></a>
</td>

也就是说,除非输入的文本以数字开头,否则名为 concepts[] 的输入不会验证。但是,右边的data-fv-regexp-message 正在开火。

【问题讨论】:

好的,在任何人注意到 concept[] 字段验证器中的拼写错误之前,我写了data-fv-regex-regexp,而不是预期的data-fv-regexp-regexp。无论如何,把它说对,或者只是把pattern="$[a-z]+$" 作为允许,它只验证数字:( :( 【参考方案1】:

对不起各位。解决了。我的错。

简短说明

html5 和 js 表单验证方法的混合用于相同的输入。

详解

当我动态地将行(带有新字段)添加到表中,并将这些字段添加到 formvalidation 时

var fields = $('#tr_' + i).find(":input:not([readonly])"); $('#myform').formValidation('addField', inputs);

第一行(它的输入)已经被 HTML5 data-fv-*attributes 验证。所以以某种方式验证中断

【讨论】:

以上是关于Formvalidation 验证器跨字段的主要内容,如果未能解决你的问题,请参考以下文章

formvalidation.io 自动对焦到隐藏目标

bootstrap 表单验证FormValidation ajax提交后怎么恢复初始状态

使用 dropzone 和使用 FormValidation 插件的其他表单字段上传多个文件

如何使用 formvalidation.io 和多​​种语言在多选 (selectpicker) 中显示默认验证消息

FormValidation / formvalidation.io Bootstrap 插件在样式更改时放错了验证图标

jQuery表单验证