如何将验证应用于动态添加的字段到表单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将验证应用于动态添加的字段到表单相关的知识,希望对你有一定的参考价值。

我有两个字段的表单,直到那些字段填充了一些文本,我的提交按钮将被禁用但现在如果我动态添加第三个字段,JS将不支持动态添加的第三个字段的验证。

链接https://jsfiddle.net/vikrantkki/zzhgaguz/57/

 <button ng-click="adddynamicfield()">add dynamic field<button>        
            <form name="dynamicform" novalidate="true">
            <input type ="text" dynamic-name name="name" ng-model="dynamicform1.name"  required>
            <input type ="text" dynamic-name name="age"  class="age" ng-model="dynamicform1.age" required >
            <button type="submit" ng-disabled="dynamicform.$invalid">submit</button>
            </form>
答案

问题是你没有编译新添加的html。你可以研究$compile,它应该解决这个问题。

但我建议您使用数组来表示动态字段,这样您就可以更轻松地获取模型值。

fiddle

$scope.dynamicFields = [];

$scope.adddynamicfield = function() {
  var index = $scope.dynamicFields.length;
  $scope.dynamicFields.push({
    name: 'field' + index,
    model: '',
    className: 'field',
  });
}

以上是关于如何将验证应用于动态添加的字段到表单的主要内容,如果未能解决你的问题,请参考以下文章

将 jQuery 验证规则添加到动态生成的表单元素时出错

如何在 devexpress 中向表单字段添加动态验证规则

动态添加字段到 laravel 表单

如何将动态添加的表单字段发布到mysql数据库

如何将表单控件添加到 Django 表单?

动态添加字段到表单