我有一个表单,其中有一些文本框。文本框在运行时生成。像用户可以添加或删除文本框。
这是表格。
<form name="formprofile3" method="post" id="formprofile3" role="form" ng-submit="formprofile3()">
<div class="container">
<div class="row">
<div ng-app="angularjs-starter" ng-controller="MainCtrl">
<fieldset data-ng-repeat="choice in choices">
<div class="col-xs-12">
<div class="row">
<div class="col-xs-10">
<textarea name="exp_details" ng-model="choice.name" class="form-control textbox1" id="exp_details" placeholder="Experience" required="required" rows="3"></textarea></div>
<div class="col-xs-2">
<button class="remove" ng-show="$last" ng-click="removeChoice()">-</button>
</div>
</fieldset>
<button class="addfields" ng-click="addNewChoice()">+</button>
<div id="choicesDisplay">
{{ choices }}
</div>
</div>
</div>
</div>
<center><button type="submit" class="btn btn-home" name="btn-save1" id="btn-save1" required="required">Save & Finish <i class="icon ion-arrow-right-a"></i></button></center>
</form>
这是提交表单的角度代码。
formApp.controller('formProfile3', function($scope,$http){
$scope.formData = {};
$scope.formprofile3 = function() {
var allData={'formData': $scope.formData, 'uid': uid}
$http({
method : 'POST',
url : 'add_profile.php',
data : allData,
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
if (!data.success) {
$scope.message = data.errors.message;
}else{
alert('Your details has been updated.');
}
});
};
})
问题是我提交表格时。它没有得到提交。没有数据进入后期。
任何建议我做错了什么。
编辑:我可以在{{choices}}中看到数据。
选择不是形式数据。
这是萤火虫中的数据。
{"formData":{},"uid":"75"}:""
答案 0 :(得分:1)
移动ng-app
&amp;对ng-controller
/ body
标记的html
指令,以便form
&amp; ng-submit
指令应该编译
<body ng-app="angularjs-starter" ng-controller="MainCtrl">
<form name="formprofile3" method="post" id="formprofile3" role="form" ng-submit="formprofile3()">
....
</form>
</body>
此外,我无法在页面上看到任何formData
(作为ng-model)双向绑定。我想你应该找choices
。另外,将name
属性添加到表单对象的每个textarea
字段中以进行验证。