即使在角度JS中将所需字段留空,表单也会被提交

Sha*_*eer 2 html javascript forms angularjs

我是角度JS的新手,我创建了一个表格

HTML

<div data-ng-controller="ReservationController"
    <form class="form-horizontal" role="form">
            <div class="form-group">
              <div class="col-sm-10">
                <label>Guest Name</label>
                <input type="text" class="form-control" placeholder="" ng-model="res_guest_name" required>
              </div>
            </div>

            <div class="form-group">
              <div class="col-sm-10">
                <label>Phone</label>
                <input type="phone" class="form-control"  ng-model="res_member_phone">
              </div>
            </div>
            <div class="form-group">
              <div class="col-sm-10">
                <label>FAX</label>
                <input type="phone" class="form-control"  ng-model="res_member_fax">
              </div>
            </div>
            <div class="form-group">
              <div class="col-sm-10">
                <label>Email</label>
                <input type="email" class="form-control"  ng-model="res_member_email" required>
              </div>
            </div>
          <div class="form-group">
              <div class="col-sm-offset-8 col-sm-10">
                <button type="submit" class="btn btn-success" ng-click="res_save()">Save Changes</button>
              </div>
            </div> 
          </form>
          </div>
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

  function ReservationController($scope, $http,       $cookieStore,$location,$filter) {
     $scope.res_save = function()
      {
       var save_res ="https://pbg.com/save_form.html?contactid="+conId+"&token="+token+"&id="+$scope.resId+"&page=edit&guest_name="+$scope.res_guest_name+"&phone="+$scope.res_member_phone+"&fax="+$scope.res_member_fax+"&email="+$scope.res_member_email;
$http.get(save_res).success(function(response) {
    alert('success');
      });       
      }
      }
Run Code Online (Sandbox Code Playgroud)

即使必填字段留空,我的表单仍会提交.它显示错误,然后提交.

squ*_*oid 7

显然它会提交你没有处理提交表格的表格.你只是管理错误:-)

使用 表单上的字段在ng-disabled="myForm.$invalid" 哪里myFormname
<form class="form-horizontal" name="myForm" role="form">

  <button type="submit" class="btn btn-success" ng-disable="myForm.$invalid" ng-click="res_save()">Save Changes</button>
Run Code Online (Sandbox Code Playgroud)

如果您不希望该按钮被禁用,那么您可以使用

<button type="submit" class="btn btn-success" ng-click="res_save(myForm.$valid)">Save Changes</button>
Run Code Online (Sandbox Code Playgroud)

在控制器中

   $scope.res_save = function(valid)
         {
           if(valid){
           var save_res ="https://pbg.com/save_form.html?contactid="+conId+"&token="+token+"&id="+$scope.resId+"&page=edit&guest_name="+$scope.res_guest_name+"&phone="+$scope.res_member_phone+"&fax="+$scope.res_member_fax+"&email="+$scope.res_member_email;
    $http.get(save_res).success(function(response) {
        alert('success');
          }); 
        }      
          }
Run Code Online (Sandbox Code Playgroud)