AngularJS表單操作幾個例子(表單提交,表單編輯預設值)

來源:互聯網
上載者:User

模仿著我要搞了個AngularJS Form,但是問題來了。。。。
發現初始化時候ng-model 跟 input 標籤裡的 value 不默契,衝突。。
後來想再AngularJS controller 裡預先賦值 $scope.formData = {‘name':’張三’};
可以通過php程式把值賦到這個AngularJS controller裡

 代碼如下 複製代碼

<!-- AngularJS controller -->
<script>
    var formApp = angular.module('formApp', []);
    function formController($scope, $http) {
        $scope.formData = {'name':'張三','remark':'備忘'};
        $scope.myForm = function() {
            $http({
                method  : 'POST',
                url     : '/role/edit',
                data    : $.param($scope.formData),  // pass in data as strings
                headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  // set the headers so angular passing info as form data (not request payload)
            })
                .success(function(data) {
                    console.log(data);
                    if (!data.success) {
                    } else {
                    }
                });
        };
    }
</script>

<!--對應form裡的input調整-->

 代碼如下 複製代碼

<input type="text" name="name" ng-model="formData.name" class="form-control" placeholder="Role Name">

後來又搜啊搜 發現還有其他辦法,這麼個東東 ng-init=”formData.name=’張三'”

 代碼如下 複製代碼

<input type="text" name="name" ng-model="formData.name" ng-init="formData.name='張三'" value="">

好了,上面非常的簡單,我們再來看


事件

AngularJS提供可與HTML控制項相關聯的多個事件。例如ng-click通常與按鈕相關聯。以下是AngularJS支援的事件。

ng-click

ng-dbl-click

ng-mousedown

ng-mouseup

ng-mouseenter

ng-mouseleave

ng-mousemove

ng-mouseover

ng-keydown

ng-keyup

ng-keypress

ng-change

ng-click

使用點擊一個按鈕的指令,表單重設資料。

 代碼如下 複製代碼
<input name="firstname" type="text" ng-model="firstName" required>
<input name="lastname" type="text" ng-model="lastName" required>
<input name="email" type="email" ng-model="email" required>
<button ng-click="reset()">Reset</button>
<script>
   function studentController($scope) {
      $scope.reset = function(){
         $scope.firstName = "Mahesh";
         $scope.lastName = "Parashar";
         $scope.email = "MaheshParashar@yiibai.com";
  }  
   $scope.reset();
}
</script>

驗證資料

可使用下面跟蹤誤差。

$dirty - 規定值已被改變。

$invalid- 該值的狀態是無效的。

$error- 指出確切的錯誤。

例子

下面的例子將展示上述所有指令。

 代碼如下 複製代碼
testAngularJS.html
<html>
<head>
<title>Angular JS Forms</title>
<style>
table, th , td {
  border: 1px solid grey;
  border-collapse: collapse;
  padding: 5px;
}
table tr:nth-child(odd) {
  background-color: #f2f2f2;
}
table tr:nth-child(even) {
  background-color: #ffffff;
}
</style>
</head>
<body>
<h2>AngularJS Sample Application</h2>
<div ng-app="" ng-controller="studentController">
<form name="studentForm" novalidate>
<table border="0">
<tr><td>Enter first name:</td><td><input name="firstname" type="text" ng-model="firstName" required>
   <span style="color:red" ng-show="studentForm.firstname.$dirty && studentForm.firstname.$invalid">
      <span ng-show="studentForm.firstname.$error.required">First Name is required.</span>
   </span>
</td></tr>
<tr><td>Enter last name: </td><td><input name="lastname"  type="text" ng-model="lastName" required>
   <span style="color:red" ng-show="studentForm.lastname.$dirty && studentForm.lastname.$invalid">
      <span ng-show="studentForm.lastname.$error.required">Last Name is required.</span>
   </span>
</td></tr>
<tr><td>Email: </td><td><input name="email" type="email" ng-model="email" length="100" required>
<span style="color:red" ng-show="studentForm.email.$dirty && studentForm.email.$invalid">
      <span ng-show="studentForm.email.$error.required">Email is required.</span>
   <span ng-show="studentForm.email.$error.email">Invalid email address.</span>
   </span>
</td></tr>
<tr><td><button ng-click="reset()">Reset</button></td><td><button
 ng-disabled="studentForm.firstname.$dirty && studentForm.firstname.$invalid ||
     studentForm.lastname.$dirty && studentForm.lastname.$invalid ||
     studentForm.email.$dirty && studentForm.email.$invalid"
 ng-click="submit()">Submit</button></td></tr>
</table>
</form>
</div>
<script>
function studentController($scope) {
   $scope.reset = function(){
  $scope.firstName = "Mahesh";
  $scope.lastName = "Parashar";
  $scope.email = "MaheshParashar@yiibai.com";
   }  
   $scope.reset();
}
</script>
<script src="angular.min.js"></script>
</body>
</html>

輸出

 

在Web瀏覽器開啟textAngularJS.html。看到結果如下。

常用的表單驗證指令

1. 必填項驗證

某個表單輸入是否已填寫,只要在輸入欄位元素上添加HTML5標記required即可:

<input type="text" required /> 

2. 最小長度

驗證表單輸入的文本長度是否大於某個最小值,在輸入欄位上使用指令ng-minleng= "{number}":

<input type="text" ng-minlength="5" />

3. 最大長度

驗證表單輸入的文本長度是否小於或等於某個最大值,在輸入欄位上使用指令ng-maxlength="{number}":

<input type="text" ng-maxlength="20" />

4. 模式比對

使用ng-pattern="/PATTERN/"來確保輸入能夠匹配指定的Regex:

<input type="text" ng-pattern="/[a-zA-Z]/" />

5. 電子郵件

驗證輸入內容是否是電子郵件,只要像下面這樣將input的類型設定為email即可:

<input type="email" name="email" ng-model="user.email" />

6. 數字

驗證輸入內容是否是數字,將input的類型設定為number:

<input type="number" name="age" ng-model="user.age" />

7. URL

 驗證輸入內容是否是URL,將input的類型設定為 url:

<input type="url" name="homepage" ng-model="user.facebook_url" />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.