You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AngularJS页面单选按钮无法选中问题求助

解决AngularJS单选按钮无法选中的问题

我帮你排查了下,你的单选按钮没法选中主要有几个关键问题,咱们一个个来修正:

问题分析

  • 单选按钮分组错误:你的两个单选按钮name属性分别是type0type1,这会让它们变成两个独立的组,浏览器不会把它们当成互斥的单选按钮,自然没法正常选中切换。
  • 缺少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

火山引擎 最新活动