Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AngularJS基于下拉选择值禁用输入文本框?_Javascript_Angularjs_Kendo Ui - Fatal编程技术网

Javascript 如何使用AngularJS基于下拉选择值禁用输入文本框?

Javascript 如何使用AngularJS基于下拉选择值禁用输入文本框?,javascript,angularjs,kendo-ui,Javascript,Angularjs,Kendo Ui,我有以下针对AngularJS的JavaScript $("#listOptionFruit").kendoDropDownList({ autoBind: true, filter: 'contains', dataSource: $scope.listOptionFruitList, select: $scope.listOptionFruitSelect }); $scope.listOptionFruitSelect = function (e) {

我有以下针对AngularJS的JavaScript

$("#listOptionFruit").kendoDropDownList({
    autoBind: true,
    filter: 'contains',
    dataSource: $scope.listOptionFruitList,
    select: $scope.listOptionFruitSelect
});

$scope.listOptionFruitSelect = function (e)
{            
   $scope.listOptionFruit = e.dataItem;
   if ($scope.listOptionFruit === 'Strawberry') {
       $scope.enableMe = true;
   } 
   else 
   {
       $scope.enableMe =  false;
   }                               
}
cshtml方面如下所示:

<label for="listOptionFruit">Fruits</label>
<input id="listOptionFruit" name="listOptionFruit"  required />


<label for="myValue">MyValue</label>
<input type="text"  id="myValue" ng-disabled="enableMe"  />
水果
我的价值
因此,该值对于enablem是正确的,但是文本框似乎没有被禁用,或者操作似乎没有生效


因此,如果用户从列表中选择草莓,则文本框将被禁用,否则它将被启用

,因为事件发生在AngularJS框架之外,它需要与
$apply
绑定:

$("#listOptionFruit").kendoDropDownList({
    autoBind: true,
    filter: 'contains',
    dataSource: $scope.listOptionFruitList,
    select: function (ev) {
        $scope.$apply(function() {
            $scope.listOptionFruitSelect(ev);
        });
    }
});
AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等

有关详细信息,请参阅


由georgeawg按照上述解决方案进行排序。我使用了一个错误的变量。