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 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python