在一个项目中,我有一个带有硬编码值和一些输入字段的下拉菜单。如果选择了特定的值,我需要禁用某些输入。我试过了
这是我的代码(我只包含了相关代码)
<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>这是我的相关剧本部分。
angular.module('abc', []);
controller('abcd', function ($scope) {
  if ($scope.paperSelection == 377.95) {
    $scope.disableInputs === true;
  }
  else 
    $scope.disableInputs ===false;
}
);这不管用。我不知道这有什么问题。
有人能帮帮我吗。
发布于 2017-03-15 03:56:00
您是disableInputs,而不是随着paperSelection的变化而改变。你得把它包在手表里。
您可以简单地通过在disableInputs中添加一个ng-change参数来更新select变量,如下所示:
<select ng-model="paperSelection" ng-init="paperSelection='1191'" ng-change="disableInputs = (paperSelection == 377.95)">这是一个工作的柱塞
发布于 2017-03-15 03:53:05
在ng更改中创建一个函数,并根据条件创建一个函数,使输入禁用或不禁用。这是示例演示
还将@maximedubois提到的$scope.disableInputs === true;改为$scope.disableInputs = true;
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");
  }
}
})<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>
https://stackoverflow.com/questions/42800732
复制相似问题