【问题标题】:Not able to disable a field on selection of dropdown无法在选择下拉列表时禁用字段
【发布时间】:2017-12-21 19:48:43
【问题描述】:

我正在尝试根据下拉列表的选择隐藏输入字段,如果选择的值为“Y”,则应禁用输入字段。我不确定这里发生了什么。 -followed stackover flow 上一个问题:Disable Input field according to select option value Angularjs

感谢任何帮助,提前感谢

var myapp = angular.module("myModule", []);
myapp.controller("myController", function($scope){
var orgData = [
    		{ id: '1', roleName: "VPL", orKey: "SSB", sendAllFundsFlag: "Y", fundId:""},
    		{ id: '2', roleName: "VPN", orKey: "JPM", sendAllFundsFlag: "N", fundId: "0023"},
    		{ id: '3', roleName: "VGN", orKey: "INV1", sendAllFundsFlag: "N", fundId: "0026"},
    		{ id: '4', roleName: "SPC", orKey: "VPN", sendAllFundsFlag: "N", fundId: "0036"}
    	];
    	
    	$scope.orgData = orgData;
    	
    	$scope.selectEdit = function(id){
    	  
    	  $scope.orgRoleData = id;
    	
    	};
      
      });
<html ng-app="myModule">
    	<head>
    		<title> CRUD Operations </title>
    		<script src=https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js></script>
    	</head>
    	<body ng-controller="myController">	
    <select name="select" ng-model="orgRoleData.sendAllFundsFlag" ng-change="disablefundId = (sendAllFundsFlag==Y)">
    						  <option value="Y">Yes</option>
    						  <option value="N">No</option>
    						</select>
    
    <input type="text" ng-model="orgRoleData.fundId" ng-disabled="disablefundId"/>
    </body>
    </html>

【问题讨论】:

    标签: javascript html angularjs


    【解决方案1】:

    我认为您的选择有 2 个问题

    1) 你的 $scope 中没有 sendAllFundsFlag,应该是

    orgRoleData.sendAllFundsFlag
    

    2) 您的输入值是字符串,因此在比较模型与值时应添加“”

    "disablefundId = (sendAllFundsFlag=='Y')"
    

    Plunker

    【讨论】:

    • 很高兴能帮上忙。
    【解决方案2】:

    我会将您的评估转移到 ng-disabled 表达式本身。否则,您必须进行多次评估(一次设置disablefundId 值,并在ng-disabled 评估时再次进行。

    ng-disabled="orgRoleData.sendAllFundsFlag === 'Y'"
    

    另外,正如NTP 所指出的,您的评估是针对文本字符串的,因此Y 在这里用单引号括起来。

    var myapp = angular.module("myModule", []);
    myapp.controller("myController", function($scope){
    var orgData = [
        		{ id: '1', roleName: "VPL", orKey: "SSB", sendAllFundsFlag: "Y", fundId:""},
        		{ id: '2', roleName: "VPN", orKey: "JPM", sendAllFundsFlag: "N", fundId: "0023"},
        		{ id: '3', roleName: "VGN", orKey: "INV1", sendAllFundsFlag: "N", fundId: "0026"},
        		{ id: '4', roleName: "SPC", orKey: "VPN", sendAllFundsFlag: "N", fundId: "0036"}
        	];
        	
        	$scope.orgData = orgData;
        	
        	$scope.selectEdit = function(id){
        	  
        	  $scope.orgRoleData = id;
        	
        	};
          
          });
    <html ng-app="myModule">
        	<head>
        		<title> CRUD Operations </title>
        		<script src=https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js></script>
        	</head>
        	<body ng-controller="myController">	
        <select name="select" ng-model="orgRoleData.sendAllFundsFlag">
        						  <option value="Y">Yes</option>
        						  <option value="N">No</option>
        						</select>
        
        <input type="text" ng-model="orgRoleData.fundId" ng-disabled="orgRoleData.sendAllFundsFlag === 'Y'"/>
        </body>
        </html>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多