我有一个带有checkboxes
和其他输入字段的表单。 data-ns-form
指令用于通过ajax提交表单数据。这种形式的控制器是UserController
。AngularJS - 通过ajax提交表单并带有复选框
HTML
<div ng-controller="UserController">
<form data-ns-form="formData">
Full Name : <input type="text" name="fullname" ng-model="formData.fullname" />
Favourite Beverage :
<label>
<input type="checkbox" name="beverages[]" ng-model="formData.beverages[0]" value="coffee"> Coffee
</label>
<label>
<input type="checkbox" name="beverages[]" ng-model="formData.beverages[1]" value="tea"> Tea
</label>
<label>
<input type="checkbox" name="beverages[]" ng-model="formData.beverages[2]" value="colddrinks"> Cold Drinks
</label>
<button type="submit"> Send </button>
</form>
</div>
控制器
app.controller('UserController', function($scope){
$scope.formData = {fullname : '', beverages : []};
});
指令
app.directive('nsForm', function(){
return {
restrict : "A",
scope: {
formData : "=nsForm"
},
link : function(scope, iElem, iAttr) {
$(iElem).on('submit', function(e) {
e.preventDefault();
console.log("FORM DATA");
console.log(scope.formData);
});
}
}
});
甲很少说明
当我提交表单时,我得到布尔TRUE为选中的复选框,而是我想要的值在attirbute值。例如,如果我检查'咖啡'和'冷饮料',我得到beverages=[true,false,true]
,但我想要什么是beverages['coffee','colddrink']
。 什么是AngularJS
这样做? 还有。 有没有preferred
提交AngularJS
表单的方式,而不是自己创建directives
?
你确定你知道“异步”是什么意思吗?这似乎不相关。 – m59
@ m59我应该说'ajax'吗?但无论如何,这个问题与'ajax' /'async'没有关系。 – Lekhnath