doukang7501 2015-09-16 08:38
浏览 27
已采纳

附加的输入字段元素在angularjs中不起作用

I am creating form in angularjs. In that, I am creating add more fields functionality by clicking on "Add more" button. I've implemented add more functionality using javascript. Below is the code for HTML:

<form method="POST" name="form" ng-submit="insert(user)" role="form">                              
    <div class="top_gets" id="innerdivs">                                                                                                                                                                                                                  
        <input ng-model="user.amount"  type="text"/>                                                                                                                                            
        <input ng-model="user.description" type="text"/>                                                                                                                                                                                                                                                                                                                                                                                       
        <input type="submit" onclick="addMore();" value="Add more"/>
        <input type="submit" value="Save & Continue" class="save_gets" />                                                                                                                                                                                                                          
    </div>  
</form>

Below is Javascript Code:

<script>
    var counter = 0;
    function addMore() {
        counter += 1;
        var div = document.getElementById('innerdivs');
        var innerdiv = '<div id="innerdivs"><!-- Same Form Field Elements---></div>';
        $('#innerdivs').append(innerdiv);
    }
</script>

My problem is, whenever I add more fields by clicking on "Add more" button and submit the form, then only first loaded input fields posts/sends the data means newly appended field input does not posts the data. Whatever the fields are appended using javascritpt that won't works that is form does not sends/posts the inputs. This works with core PHP but it does not works in angularjs. Is there any way to fix this in angularjs?

  • 写回答

1条回答 默认 最新

  • drrkgbm6851 2015-09-16 08:54
    关注

    You are doing it absolutely wrong. You shall not add dom elements manually. Instead, you shall have array in controller and push new object in it:

    <form name="form" ng-submit="save(users)" role="form" ng-controller="addUserCtrl">
        <div class="top_gets" ng-repeat="user in users">
            <input ng-model="user.amount" type="text" />
            <input ng-model="user.description" type="text"/>
            <input type="button" ng-click="addMore();" value="Add more" />
            <input type="submit" value="Save & Continue" class="save_gets" />
        </div>
    </form>
    

    In controller:

    angular.module(<module_name>).controller('addUserCtrl', ['$scope', function (scope) {
        scope.users = [{}];
        scope.addMore = function () {
            scope.users.push({});
        };
        scope.save = function () {
            // send `scope.users` to server with $http or $resource
        };
    }]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大