gpt4 book ai didi

javascript - Angular 1 - 切换单选按钮

转载 作者:行者123 更新时间:2023-11-30 15:13:39 26 4
gpt4 key购买 nike

我需要在用户单击时切换单选按钮。多于 2 个按钮。

所以,当我点击一个按钮时,如果这个被选中将不再。如果不是必须选择。

我试过这个,但行不通:

app.directive('toggleRadio', function($timeout) {
return {
restict: 'A',
link: function(scope, el, attrs) {
var radioState;
el.on('click', function(){
if (radioState === this) {
this.checked = false;
radioState = null;
} else {
radioState = this;
}
scope.$apply();
});

}
}

不需要成为指令...谢谢。

最佳答案

因为它是一个单选按钮,而且正如您所说,它不需要是一个指令,这似乎也没有必要,那么您可以执行如下操作:

var app = angular.module('app', []);
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.checked = false;
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="MainCtrl">
<input type="radio" ng-model="checked"
ng-value="true" ng-click="checked=!checked" />
{{checked}}
</div>
</div>

更新:

理想情况下,您应该针对此类要求使用复选框,但如果有必要使用radio,请按以下方式操作:

var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
$scope.valChanged = false;
$scope.checked = "b";
$scope.toggle = function() {
if (!$scope.valChanged) {
$scope.checked = "";
}
$scope.valChanged = false;
}
});
<script src="https://code.angularjs.org/1.5.2/angular.js"></script>
<div ng-app="app">
<div ng-controller="MainCtrl">
<br>
<input type="radio" ng-model="checked" value="a"
ng-change="valChanged = true" ng-click="toggle()" />Option A
<br>
<input type="radio" ng-model="checked" value="b"
ng-change="valChanged = true" ng-click="toggle()" />Option B
<br>
<input type="radio" ng-model="checked" value="c"
ng-change="valChanged = true" ng-click="toggle()" />Option C
<hr> {{checked}}
</div>
</div>

关于javascript - Angular 1 - 切换单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com