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

时间:2018-03-01 11:33:16

标签: javascript angularjs validation

我有两个字段的表单,直到那些字段填充了一些文本,我的提交按钮将被禁用但现在如果我动态添加第三个字段,则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>

1 个答案:

答案 0 :(得分:0)

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

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

fiddle

$scope.dynamicFields = [];

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