无法在选择下拉列表时禁用字段

时间:2017-12-21 19:48:43

标签: javascript html angularjs

如果所选值为" 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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

我认为您的选择

有两个问题

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

orgRoleData.sendAllFundsFlag

2)您输入的值是字符串,因此您应该添加&#39; &#39;将模型与值进行比较时

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

Plunker

答案 1 :(得分:0)

我会将您的评估转移到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>