导致Angular表单POST

时间:2014-06-11 02:54:35

标签: forms angularjs

当表单有效时,我希望它将值发布到网站。

当表单无效时,我会收到警报,但我无法设置操作并导致表单在有效时提交

因此,结果应该是表单帖子和浏览器像传统的html表单一样转到下一页。

 <form name="userForm" ng-submit="submitForm(userForm)" novalidate>
 ......

 validationApp.controller('mainController', function($scope) {

// function to submit the form after all validation has occurred            
  $scope.submitForm = function(form) {

   if(form.$invalid){
       alert("form invalid");
   }
   else
   {
      form.action="http://microsoft.com";
      form.submit();
   }

 };


});

2 个答案:

答案 0 :(得分:0)

From the documentation on ngSubmit

此外,它会阻止默认操作(表单意味着将请求发送到服务器并重新加载当前页面),但前提是表单不包含操作,数据操作或x-action属性。

否则,我认为您可以将$event传递给该函数并触发$event.srcElement.submit()。您传递给函数的对象不是表单元素本身,这就是它不能提交的原因。如果您愿意,可以通过ng-submit="submitForm($event, userForm)"传递两者。希望有所帮助!

答案 1 :(得分:0)

Angular不会这样。 Angular主要希望RESTful Web服务能够接听其呼叫。是的,你可以让它以某种方式与行动合作。但是,对于重定向,您必须使用$location Web服务。通过$location,您可以将页面重定向到下一页。

$scope.submitForm=function(form){
if(form.$invalid){
       alert("form invalid");
}
else
{
      $http.post(url:'yourURL', yourData));
      $location.path='newURL';
}