【问题标题】:Angularjs: Handle click on disabled radioAngularjs:处理点击禁用的收音机
【发布时间】:2018-01-17 05:59:06
【问题描述】:

我想使用 Angularjs 处理对禁用单选按钮及其标签的点击。

//html
<div ng-app>
  <div ng-controller="TempCtrl">
    <label data-ng-click="handleClick()">
      <input type="radio" value="1" data-ng-disabled="true">
      Value 1
    </label>
    <label data-ng-click="handleClick()">
      <input type="radio" value="2" >
      Value 2
    </label>
  </div>
</div>

//javascipt
function TempCtrl($scope) {

  $scope.handleClick = function() {
    alert('handleClick')
  };

}

这里是jsfiddle。因此,当用户单击禁用的收音机时,应该会出现警报。我该怎么做?

【问题讨论】:

  • 您到底需要什么?你能详细说明一下吗..看起来很有趣..
  • @PankajParkar 当用户单击禁用的单选按钮并输入时,应显示通知。当用户单击未禁用的无线电时,会执行一些计算。 handleClick 函数中的所有逻辑。我简单地留下警报以简化事情。

标签: javascript angularjs input radio-button


【解决方案1】:

请参阅下面的 sn-p 以获得答案

<html ng-app="myApp">
<head>
	<title></title>
</head>
<body ng-controller="myCtrl">
 <label for="input1" data-ng-click="handleClick('input1')">
      <input name="input1" id="input1" type="radio" value="1" data-ng-disabled="true">
      Value 1
    </label>
    <label for="input2" data-ng-click="handleClick('input2')">
      <input name="input2" id="input2" type="radio" value="2" >
      Value 2
    </label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);

app.controller('myCtrl', ['$scope', function ($scope) {
 $("#input1").prop('disabled',true).css('pointer-events','none');
$scope.handleClick = function(id) {
   	var disabled=$("#"+id).attr('disabled');
    if(disabled=='disabled'){
    alert("disabled")
    }
  };
}]);

</script>
</body>
</html>

【讨论】:

  • 点击禁用输入时仍然看不到警报
  • 试试点击标签
  • 在我的 jsfiddle 中,当我点击标签时会显示警报。这个想法是在用户单击禁用的单选按钮时显示警报。
  • 我在你的 jsfiddle 上看不到任何警报
  • 我的错,有一个console.log。我更新了带有警报版本链接的原始帖子。
【解决方案2】:

据此: Event on a disabled input

你做不到。

一种方法是不禁用它,并设置一个类:

 [class.notReallyDisabled]="w/e"

然后用 CSS 改变它的外观。

【讨论】:

  • 在这种情况下,值将在输入中设置,我需要恢复它。我实际上对更优雅的解决方案感兴趣。但如果我什么都没找到,我就得走这条路。
猜你喜欢
  • 2018-10-10
  • 2013-04-26
  • 2018-04-04
  • 2018-04-03
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
相关资源
最近更新 更多