首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据选择的选项值Angularjs禁用输入字段

根据选择的选项值Angularjs禁用输入字段
EN

Stack Overflow用户
提问于 2017-03-15 03:44:27
回答 2查看 2.9K关注 0票数 0

在一个项目中,我有一个带有硬编码值和一些输入字段的下拉菜单。如果选择了特定的值,我需要禁用某些输入。我试过了

这是我的代码(我只包含了相关代码)

代码语言:javascript
运行
复制
<html ng-app="abc">

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body ng-controller="abcd">
        <select ng-model="paperSelection" ng-init="paperSelection='1191'">
        <option value="1700">A3 Paper</option>
        <option value="1191">A4 Paper</option>
        <option value="842">A5 Paper</option>
        <option value="377.95">Barcode Sticker 3 in a row</option>
    </select>
    <p>Number Of Columns Needed : <input type="number" ng-model="numberOfColumns" placeholder="Number Of Columns" ng-disabled="disableInputs"></p>
    <p>Enter the number of Stickers : <input type="number" ng-model="numberOfStickersNeeded" placeholder="Number of Stickers"></p>
    <p>Enter Height of the Sticker (in px) : <input type="number" ng-model="heightOfSticker" placeholder="Enter Height" ng-disabled="disableInputs"></p>
  </body>

</html>

这是我的相关剧本部分。

代码语言:javascript
运行
复制
angular.module('abc', []);

controller('abcd', function ($scope) {

  if ($scope.paperSelection == 377.95) {
    $scope.disableInputs === true;
  }
  else 
    $scope.disableInputs ===false;
}
);

这不管用。我不知道这有什么问题。

有人能帮帮我吗。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-15 03:56:00

您是disableInputs,而不是随着paperSelection的变化而改变。你得把它包在手表里。

您可以简单地通过在disableInputs中添加一个ng-change参数来更新select变量,如下所示:

代码语言:javascript
运行
复制
<select ng-model="paperSelection" ng-init="paperSelection='1191'" ng-change="disableInputs = (paperSelection == 377.95)">

这是一个工作的柱塞

https://plnkr.co/edit/qTNd7ipZ6EzVisNDNoIq?p=preview

票数 2
EN

Stack Overflow用户

发布于 2017-03-15 03:53:05

在ng更改中创建一个函数,并根据条件创建一个函数,使输入禁用或不禁用。这是示例演示

还将@maximedubois提到的$scope.disableInputs === true;改为$scope.disableInputs = true;

代码语言:javascript
运行
复制
angular.module("app",[])
.controller("ctrl",function($scope){

if ($scope.paperSelection == 377.95) {
    $scope.disableInputs = true;
  }
  else 
    $scope.disableInputs =false;
    
$scope.selectChange = function(){
  switch($scope.paperSelection){
    case '1700' : 
      $scope.disableInputs = true;
      break;
    case '1191' : 
      $scope.disableInputs = false;
      break;
    default :
      console.log("no value");
  }
}
})
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
        <select ng-model="paperSelection" ng-init="paperSelection='1191'" ng-change="selectChange()">
        <option value="1700">A3 Paper</option>
        <option value="1191">A4 Paper</option>
        <option value="842">A5 Paper</option>
        <option value="377.95">Barcode Sticker 3 in a row</option>
    </select>
    <p>Number Of Columns Needed : <input type="number" ng-model="numberOfColumns" placeholder="Number Of Columns" ng-disabled="disableInputs"></p>
    <p>Enter the number of Stickers : <input type="number" ng-model="numberOfStickersNeeded" placeholder="Number of Stickers"></p>
    <p>Enter Height of the Sticker (in px) : <input type="number" ng-model="heightOfSticker" placeholder="Enter Height" ng-disabled="disableInputs"></p>
 
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42800732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档