javascript - 如何在验证时使用 angularJs 设置事件选项卡

标签 javascript jquery angularjs twitter-bootstrap-3

这里我创建了两个选项卡,我的问题是当单击提交按钮时其验证第一个选项卡并且不会自动转到第二个选项卡怎么办?感谢您在高级方面的帮助

angular.module('myApp', []).controller('myCtrl', ['$scope', function($scope){
    $scope.msg='not submitted';
    $scope.tab=1;
    //adding some code to your controller
    //...here
    $scope.validateSubmit = function(){
    //...
    }
}]);
.btn{
    background-color:lightblue;
    cursor: pointer;
    width: 100px;
    border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myApp">
    <div ng-controller='myCtrl'>
        <form name='myForm' ng-submit="msg='submited'">
            <span class="btn" ng-click="tab=1">tab 1</span>
            <span class="btn" ng-click="tab=2">tab 2</span>
          <div>
                <ng-form ng-show="tab==1">
                    <label>1 st tab</label>
                    <input type="number" ng-model="input2" required="required" />
                </ng-form>
                <ng-form ng-show="tab==2">
                    <label>2nd tab</label>
                    <input type="text" ng-model="input3" required="required" />
                </ng-form>
          </div>
            <p>Form shouldn't submit if both fields are empty or if the first is not a number.</p>
            <input type="submit" value="submit" ng-click="validateSubmit()"/>
        <form>
        <p>{{msg}}</p>
    </div>
</body>

最佳答案

我认为你不应该使用 ng-show 因为表单不会在 display:none 元素内提交字段。 您可以尝试以下代码:

CSS 代码:

.visible {
    visibility: visible
}

.hidden {
    visibility: hidden
}

HTML 代码:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myApp">
    <div ng-controller='myCtrl'>
        <form name='myForm' ng-submit="msg='submited'">
            <span class="btn" ng-click="tab=1">tab 1</span>
            <span class="btn" ng-click="tab=2">tab 2</span>
          <div>
                <ng-form ng-class="tab==1 ? 'visible' : 'hidden'">
                    <label>1 st tab</label>
                    <input type="number" ng-model="input2" required="required" />
                </ng-form>
                <ng-form ng-class="tab==2 ? 'visible' : 'hidden'">
                    <label>2nd tab</label>
                    <input type="text" ng-model="input3" required="required" />
                </ng-form>
          </div>
            <p>Form shouldn't submit if both fields are empty or if the first is not a number.</p>
            <input type="submit" value="submit" ng-click="validateSubmit()"/>
        <form>
        <p>{{msg}}</p>
    </div>
</body>

关于javascript - 如何在验证时使用 angularJs 设置事件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35448571/

相关文章:

javascript - 数据表 : add row and check added row's index

javascript - 启用第一个复选框后禁用其他复选框

javascript - 如何使用 haml 将内插的 ruby​​ 对象正确格式化为 Rails 中的 jquery 选择器?

javascript - 如何在 $q.all 返回之前运行最后一段代码?

c# - 从系统中的其他地方调用 SignalR hub 客户端

javascript - 使用速度、方向和 if 语句旋转动画

javascript - 将一个数组作为参数进行排序

javascript - bootstrap 工具提示保持打开状态(IE、Firefox)

AngularJS - 限制 Google 自动完成中的国家/地区

javascript - 如何将 angularjs 值分配给 jquery