2017-03-24 29 views
0

我正在嘗試構建一個angularjs應用程序。我正在使用ui-router在頁面之間進行路由。問題是,我爲頁面做的驗證工作正常,但它突然停止工作(我認爲使用ui路由器實現路由後)。即使是基本的HTML表單驗證所需的領域,電子郵件等無法正常工作。我是angularJs領域的新人。我已經在這裏發佈了其他問題並嘗試了很多,但都是徒勞的。驗證不適用於angularJs應用程序

這是我的login.html

<div ng-app="app" ng-controller="LoginController"> 
<form name="MyForm"> 


    <center> 

      <img id="u1_img" src="images\image.png"> 

    </center> 


    <h1 align="center" style="color:#336BFF;">Sammilana</h1> 
    <h3 align="center">Connecting People</h3> 
    <center> 
    <input type="email" placeholder="Email" ng-model="login.User.email" required> </br></br> 
    <input type= "password" placeholder="Password" ng-model="login.User.password" required> 
    </center> 




    <center> 

    </br> 
    <a ui-sref="profile" class="centerBtn" style="text-decoration:none;">Login</a> 
    </br></br> 
    </center> 


    <center> 

    <a ui-sref="welcome" style="color:#80bfff;" ng-click="submitMyForm()">Register</a></br> 
    <a ui-sref="forgot" style="color:#80bfff;">Forgot Password</a></br> 


    </center> 
    </form> 
    </div> 

SubmitMyForm()是一個用控制器將值傳遞給數據庫的功能。任何人都可以告訴我我錯在哪裏?

回答

0

驗證失敗只會阻止表單提交。你沒有提交表單,你只是在控制器上調用一個函數。

嘗試移動ctrl.submitMyForm()到窗體標籤:

<form name="MyForm" ng-submit="ctrl.submitMyForm()"> 

然後添加一個提交按鈕。您只能通過按鈕提交表單,而不能使用錨標記。

<button type="submit">Submit Form</button> 

當您單擊「提交表單」按鈕時,您應該看到驗證提示。

但是,請注意,這是html5瀏覽器驗證發生,而不是角度驗證。在形式

<form name="MyForm" ng-submit="submitMyForm()"> 

+0

我試過..驗證將現在正常工作..但路由不會發生..如果驗證正在發生..那麼它不會路由到其他頁面,反之亦然 – Urkilashi

+0

只需觸發控制器的路由。注入'$ state',然後在提交函數結束時調用'$ state.go('welcome');'。 –

0

使用NG-提出並定義在您的控制器submitMyForm您在路由提及。

此外還有提交表單需要提交表單,否則驗證將無法正常工作。

您可以通過查看現場驗證

MyForm.:name.$valid 

:名稱是字段名 有喜歡的髒許多驗證選項,$有效,$無效等

你也可以在你的函數中使用$scope.MyForm.$valid檢查該表格是否有效

+0

我試了..驗證將現在正常工作..但是,然後路由不會發生..如果驗證正在發生..那麼它不會路由到其他頁面,反之亦然 – Urkilashi

+0

角提供$狀態,只需注入和使用$狀態。去( 「:Statename的」)。 –

+0

從此參考 http://stackoverflow.com/questions/19516771/how-to-send-and-retrieve-parameters-using-state-go-toparams-and-stateparams –

相關問題