2016-01-22 68 views
0

角驗證:如果用戶輸入無效電子郵件或密碼

<form name="LPform" novalidate> 
 
       <div class="form-row clearfix"> 
 
        <label class="lbl-fld" style="margin-left: 12%;width:20%;">Email ID</label> 
 
        <input class="mob-adj-inpbx " type="email" name="uemail" ng-model="useremail" placeholder=" [email protected]" ng-required="true"/> 
 
        <div class="valid-chk validation-loginpopup" ng-show="LPform.uemail.$dirty && allow_Invalid"> 
 
        <i style="font-size: 1.15em;padding:0px;" ng-class="{'false':'icon-close', 'true': 'icon-correct'}[LPform.uemail.$valid]" class="icon-correct"></i> 
 
        </div> 
 
        <div class="error-prompt" ng-show="LPform.uemail.$dirty && allow_Invalid"> 
 
        </div> 
 
       </div> 
 
       <div class="form-row clearfix"> 
 
        <label class="lbl-fld" style="margin-left: 12%;width:20%;">PASSWORD</label> 
 
        <input class="mob-adj-inpbx" type="password" name="upassword" ng-model="userpassword" placeholder=" password" ng-required="true"/> 
 
        <div class="valid-chk validation-loginpopup" ng-show="LPform.upassword.$dirty && allow_Invalid"> 
 
        <i style="font-size: 1.15em;padding:0px;" ng-class="{'false':'icon-close', 'true': 'icon-correct'}[LPform.upassword.$valid]" class="icon-correct"></i> 
 
        </div> 
 
        <div class="error-prompt" ng-show="LPform.upassword.$dirty && allow_Invalid"> 
 
        </div> 
 
       </div> 
 

 
       <div id="server_message" class="form-row clearfix basic-error-msg-loginpopup" ng-show="server_message"> 
 
        {{server_message}} 
 
       </div> 
 
       <div class="btn-container clearfix mobile-adj" style="margin-left:17.2%;"> 
 
        <div class="btn-wrap btn-loginpopup"> 
 
        <input style="max-height:40px;width:121%;" type="submit" name="commit" value="LOGIN" ng-click="login_request()"/> 
 
        </div> 
 
       </div> 
 
       </form>
這部分顯示給用戶和輸入使用角驗證驗證服務器限制請求。所有驗證工作正常。

$scope.login_request = function(){ 
 
    if(LPform.useremail.$valid && LPform.userpassword.$valid) { 
 
     $scope.allow_Invalid = "true"; 
 
     $http({ 
 
      method: 'POST', 
 
      url: '/users/home_login', 
 
      data: {email: $scope.useremail, password: $scope.userpassword} 
 
     }).success(function (response) { 
 
      console.log(response); 
 
      window.location = response.location; 
 
     }).error(function (response) { 
 
      console.log(response); 
 
      $scope.server_message = response.server_message; 
 
     }); 
 
    } 
 
    else if(!LPform.useremail.$valid) { 
 
     $scope.allow_Invalid = "true"; 
 
     $scope.server_message = "Please enter valid email."; 
 
    } 
 
    else if(!LPform.userpassword.$valid) { 
 
     $scope.allow_Invalid = "true"; 
 
     $scope.server_message = "Please enter valid password."; 
 
    } 
 
    else{ 
 
     $scope.allow_Invalid = "true"; 
 
     $scope.server_message = "Request Failed."; 
 
    } 
 
    };

這部分是JavaScript文件,我想用驗證來決定是否發送給服務器或一個請求。我在if else子句中使用的條件不起作用,我隨機嘗試了btw。我知道我可以禁用登錄按鈕,但是,我不想這樣實現。

+0

* 「不工作」 *不正確的問題說明。還要注意,沒有什麼可以阻止用戶通過鍵盤提交併繞過按鈕上的點擊處理程序。應該考慮切換到使用ng-submit – charlietfl

+0

「不工作」我的意思是說,如果在js文件中的其他子句中使用條件存在錯誤。並感謝您在第二部分的信息。 – Dreamer

+0

@charlietfl沒有使用ng-submit – Dreamer

回答

1

我相信你的問題是表單名必須爲$scope而不是全局變量。

在控制人變更情況

LPform 

$scope.LPform 
相關問題