zoukankan      html  css  js  c++  java
  • angular 1.2.29版本下 动态添加多个表单、 校验全部、 提交 、ng-form方案

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    <style>
        .hasError{
            border: 1px red solid;
        }
        .errorMsg{
            color: red
        }
    </style>
    <body ng-app="myApp" ng-controller="myCtrl">
        <button ng-click="addRow()">添加</button>
        <form name="userForm" novalidate  ng-submit="userForm.$valid?submit():''">
            <table>
                <thead>
                     <tr>
                        <th>字段一</th>
                        <th>字段二</th>
                        <th>字段三</th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-repeat="item in jsonList">
                        <td>
                            <input type="text" readonly ng-model="item.name1">
                        </td>
                        <td>
                            <input type="text" readonly ng-model="item.name2">
                        </td>
                        <td>
                            <input type="text" readonly ng-model="item.name3">
                        </td>
                    </tr>
                    <tr ng-repeat="item in jsonListAdd">
                        <td>
                            <ng-form name="tel{{$index}}">
                                <input 
                                type="text" 
                                placeholder="请输入手机号"
                                ng-model="item.name1" 
                                required 
                                ng-pattern = "/^(13|15|17|18|14)[0-9]{9}$/"
                                name="tel"
                                ng-class="{ 'hasError' : {{'tel' + $index}}.tel.$dirty && {{'tel' + $index}}.tel.$invalid}"
                                >
                                <p ng-show="{{'tel' + $index}}.tel.$dirty && {{'tel' + $index}}.tel.$invalid" class="errorMsg">error message1.</p>
                                <!-- <p>dirty: <span ng-bind="{{'tel' + $index}}.tel.$dirty"></span>    </p>
                                <p>invalid: <span ng-bind="{{'tel' + $index}}.tel.$invalid"></span></p> -->
                            </form>
                        </td>
                        <td>
                            <ng-form name="email{{$index}}">
                                <input type="text"
                                type="text" 
                                placeholder="请输入6位验证码"
                                ng-model="item.name2" 
                                required 
                                ng-pattern = "/^[^u2E80-u9FFF]{6,16}$/"
                                name="email"
                                ng-class="{ 'hasError' : {{'email' + $index}}.email.$dirty && {{'email' + $index}}.email.$invalid}"
                                >
                                <p ng-show="{{'email' + $index}}.email.$dirty && {{'email' + $index}}.email.$invalid" class="errorMsg">error message2.</p>
                            </form>
                        </td>
                        <td>
                            <ng-form name="addr{{$index}}">
                                <input type="text"
                                type="text" 
                                placeholder="请输入6位验证码"
                                ng-model="item.name3" 
                                required 
                                ng-pattern = "/^[^u2E80-u9FFF]{6,16}$/"
                                name="addr"
                                ng-class="{ 'hasError' : {{'addr' + $index}}.addr.$dirty && {{'addr' + $index}}.addr.$invalid}"
                                >
                                <p ng-show="{{'addr' + $index}}.addr.$dirty && {{'addr' + $index}}.addr.$invalid" class="errorMsg">error message3.</p>
                            </form>
                        </td>
                        
                    </tr>
                </tbody>
            </table>
    
            <button type="submit">提交</button>
    
        </form>
    
    
        
    
    </body>
        <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
        <!--<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>-->
         <script src="angular.js"></script>
        <script src="three.js"></script>
    </html>

    js:

    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.jsonList = [
                {
                    name1: 'name1',
                    name2: 'name2',
                    name3: 'name3'
                },
                {
                    name1: 'name1',
                    name2: 'name2',
                    name3: 'name3'
                },
                {
                    name1: 'name1',
                    name2: 'name2',
                    name3: 'name3'
                }
            ];//原先的数据
        $scope.jsonListAdd = [];//添加的数据
        $scope.addNum = 0;//添加次数
    
        $scope.regExp = {
            mobile:"/^(13|15|17|18|14)[0-9]{9}$/"
        }
        // 添加
        $scope.addRow = function(){
            $scope.jsonListAddNull = {
                name1: '',
                name2: '',
                name3: ''
            };
    
            $scope.addNum = $scope.addNum + 1;
    
            if($scope.addNum <= 20){
                $scope.jsonListAdd.push($scope.jsonListAddNull);
            }
            
        };
        // 提交
        $scope.submit = function(){
            console.log($scope.jsonListAdd);    
        };
        
    });
  • 相关阅读:
    Qt新建线程的方法(有QRunnable,QThreadPool,moveToThread和QtConcurrent的例子)
    QThread 与 QObject的关系(QObject可以用于多线程,可以发送信号调用存在于其他线程的slot函数,但GUI类不可重入)
    Qt线程QThread简析(8个线程等级,在UI线程里可调用thread->wait()等待线程结束,exit()可直接退出线程,setStackSize设置线程堆栈,首次见到Qt::HANDLE,QThreadData和QThreadPrivate)
    QSettings保存程序设置
    QList 和std::list的比较
    转义字符()对JavaScript中JSON.parse的影响
    自定义类似QMutexLocker的CMutexLocker
    部件之间图标拖拽(使用很直观,效果很漂亮)
    QtSoap调用Web Service(QtSoap是非官方应用)
    QTableWidget 导出到csv表格
  • 原文地址:https://www.cnblogs.com/cynthia-wuqian/p/6524903.html
Copyright © 2011-2022 走看看