zbwroom 2015-04-10
angularjs提交表单
你可以通过两种方式提交表单:
使用一个按钮元件与NG点击属性。
用NG提交属性(指令)的形式元素。
在这两种情况下,一个JavaScript函数调用对象的范围。你把这个JavaScript函数的范围对象在您的控制器功能。JavaScript函数将数据从形式到你的服务器,通过AJAX。
这里是一个使用表单的NG点击属性按钮元素:
<body> <form name="myForm" id="myForm" ng-submit="save()" ng-controller="TestFormModule"> <input type="text" name="userName" ng-model="user.userName" required="" /> <input type="password" name="password" ng-model="user.userPassword" required="" /> <input type="submit" ng-disable="myForm.$invalid" /> </form> </body>
<script type="text/javascript"> var appModule = angular.module('TestFormModule', []); appModule.controller('TestFormModule', function ($scope, $http) { $scope.user = { userName: 'lisi', userPassword: '1234' }; $scope.save = function () { //var dataObject = { // userName : $scope.user.userName // ,userPassword : $scope.user.userPassword //}; var o = {}; var a = $("#myForm").serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); var responsePromise = $http.post("/Home/FormPost", JSON.stringify(o), {}); responsePromise.success(function (dataFromServer, status, headers, config) { console.log(dataFromServer.title); }); responsePromise.error(function(data, status, headers, config) { alert("Submitting form failed!"); }); //$.ajax( // { // type: "post", // contentType: "application/json", // url: "/Home/FormPost", // data: JSON.stringify(o),//转换数据格式 // success: function (msg) { // alert(p); // }, // error: function (XMLHttpRequest, textStatus, errorThrown) { // alert(XMLHttpRequest.statusText); // } // }); } }); </script>