使用AngularJS在下拉列表中按选定值启用/禁用按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用AngularJS在下拉列表中按选定值启用/禁用按钮相关的知识,希望对你有一定的参考价值。

我有一个名为test的按钮和一个带有三个值的下拉菜单。如何根据下拉菜单中选择的值启用 - 禁用“测试”按钮。例如。如果选择“未就绪”,则应禁用按钮如果选择就绪或注意,则应启用按钮

<div class="row">
    <div>
    <button id="testBtn" class="btn btn-default" >Test</button>
    </div>
</div>


<div class="row">
<div class="col-md-12">


    <select name="select">
        <option value="value1" selected>Not ready</option> 
        <option value="value2">Ready</option>
        <option value="value3">Attention !!</option>
    </select>


 </div>
</div>

Plunker

答案

你需要一个Angular应用程序和控制器。从那里,您可以将模型绑定到您的选择,然后在按钮上使用带有ng-disabled指令的表达式,根据框中的值动态启用和禁用它。见下文。 select上的ng-model将它绑定到$ scope.currentState,这是我在按钮上的ng-disabled指令中比较我的文字字符串。

var app = angular.module('myapp', []);

app.controller('MainCtrl', function($scope) {
  $scope.states = ['Not ready', 'Ready', 'Attention !!'];
  $scope.currentState = 'Not ready';
});
<!DOCTYPE html>
<html ng-app="myapp">

<head>
  <meta charset="utf-8" />
  <title>AngularJS App</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>

<body ng-controller="MainCtrl">
  <div class="row">
    <div>
      <button id="testBtn" class="btn btn-default" ng-disabled="currentState === 'Not ready'">Test</button>
    </div>
  </div>


  <div class="row">
    <div class="col-md-12">


      <select name="select" ng-model="currentState" ng-options="state as state for state in states">
      </select>


    </div>
  </div>
</body>

</html>
另一答案

如果验证值是数字,则使用此方法。

            <div class="form-group">
                    <div class="row">
                        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                            <label class="control-label  col-xs-4 col-sm-4 col-md-4 col-lg-4">User Type</label>
                            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                                <select class="form-control height_30" ng-model="data1.user_type " ng-options="cust.id as cust.typename for cust in usertype"></select>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="row">
                        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                            <label class="control-label  col-xs-4 col-sm-4 col-md-4 col-lg-4">Password</label>
                            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                                <input type="text" class="form-control" ng-model="data1.user_passwd">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="row">
                        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                            <label class="control-label  col-xs-4 col-sm-4 col-md-4 col-lg-4">Customer</label>
                            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                                <select ng-disabled="data1.user_type === 1 || data1.user_type === 2" class="form-control height_30" ng-model="data1.customer_id" ng-options="cust.customer_id as cust.customer_name for cust in customers"></select>
                            </div>
                        </div>
                    </div>
                </div>
另一答案
<select ng-model="item" ng-options="a.name for a in data">
    <option value="">
        select
    </option></select>
<button class="btnS btn-success ctrl-btn" ng-click="save()" ng-disabled="!item"> Submit</button>

以上是关于使用AngularJS在下拉列表中按选定值启用/禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS - 在下拉列表中设置选定值,其中值与另一个对象匹配

下拉列表不会根据范围值angularjs进行更新

如何使用 Angular JS 设置下拉列表控件的选定选项

reactstrap 未在下拉列表中显示选定的默认值/值

如何使用 Laravel 在下拉列表中显示数据库中的选定值?

在 PHP 和 POST 选定值中拥有动态下拉列表的最佳方法是啥