AngularJS表单操作几个例子(表单提交,表单编辑默认值)

听同事讲AngularJS比jquery还要强大一些于时就开始了AngularJS学习工作,但在学习AngularJS中发现对于表单提交与表单默认值都不会搞,下面来看看几个关于AngularJS Form的案例吧。








模仿着我要搞了个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(www.111cn.net)-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>
 


输出


 


AngularJS表单操作几个例子(表单提交,表单编辑默认值)
在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/"来确保输入能够匹配指定的正则表达式:


<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" />
from:http://www.111cn.net/wy/jquery/75590.htm
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值