AngularJS页面单选按钮无法选中问题求助
解决AngularJS单选按钮无法选中的问题
我帮你排查了下,你的单选按钮没法选中主要有几个关键问题,咱们一个个来修正:
问题分析
- 单选按钮分组错误:你的两个单选按钮
name属性分别是type0和type1,这会让它们变成两个独立的组,浏览器不会把它们当成互斥的单选按钮,自然没法正常选中切换。 - 缺少
ng-model绑定:AngularJS需要通过ng-model来跟踪表单控件的状态,没有这个指令的话,框架没法管理单选按钮的选中状态。 ng-value设置不符合需求:你想显示typeValue里的文本,但当前ng-value设的是true/false,这和你要绑定的数值不匹配。
修正后的代码
Script.js
$scope.typeValue = ["120","123"]; // 新增一个变量用来存储选中的值 $scope.selectedType = "";
HTML
<div class="radio"> <label> <input type="radio" name="typeGroup" ng-model="selectedType" ng-value="typeValue[0]"/> {{typeValue[0]}} </label> <label> <input type="radio" name="typeGroup" ng-model="selectedType" ng-value="typeValue[1]"/> {{typeValue[1]}} </label> </div>
关键修改点说明
- 统一
name属性:把两个单选按钮的name都改成typeGroup,这样它们就属于同一个单选组,浏览器会自动处理互斥选中的逻辑。 - 添加
ng-model:绑定到$scope.selectedType,AngularJS会自动把选中的单选按钮对应的ng-value值赋值给这个变量,同时根据变量值来控制选中状态。 - 修正
ng-value:把ng-value设为typeValue[0]和typeValue[1],这样选中对应按钮时,selectedType就会拿到"120"或"123",和你显示的文本完全对应。
如果需要触发选中后的逻辑,还可以把注释掉的ng-change="RadioChange('type')"加回去,记得在控制器里实现RadioChange函数哦。
内容的提问来源于stack exchange,提问作者UserB




