AngularJS写一个单选按钮,我们会如下这样写:
app.html
<!doctype html> <html> <head> <script src="jquery-1.10.2.min.js"></script> <script src="angular-1.0.1.min.js"></script> <script src="app.js"></script> </head> <body ng-controller="Ctrl"> <input type="radio" ng-model="model.isChecked" value="1"/> <input type="radio" ng-model="model.isChecked" value="0"/> <br> model.isChecked:{{model.isChecked}} </body> </html>
这里的radio加不加name属性都是没有问题的。
app.js
var module = angular.module( "myApp", [] ); module.controller('Ctrl',function($scope){ $scope.model = { isChecked:'1' }; }); angular.element(document).ready(function() { angular.bootstrap(document,['myApp']); });
运行结果:
此时,如果我们想在切换单选按钮时进行校验,校验不通过,不让切换,可如下实现。
app.html
<!doctype html> <html> <head> <script src="jquery-1.10.2.min.js"></script> <script src="angular-1.0.1.min.js"></script> <script src="app.js"></script> </head> <body ng-controller="Ctrl"> <input type="radio" ng-model="model.isChecked" value="1" ng-click="onRadioClick('1')"/> <input type="radio" ng-model="model.isChecked" value="0" ng-click="onRadioClick('0')"/> <!-- <input type="radio" ng-model="model.isChecked" value="1"/> <input type="radio" ng-model="model.isChecked" value="0"/> --> <br> model.isChecked:{{model.isChecked}} </body> </html>
app.js
var module = angular.module( "myApp", [] ); module.controller('Ctrl',function($scope){ $scope.model = { isChecked:'1' }; $scope.onRadioClick=function(val){ if(!checkIsOk(val)){ $scope.model.isChecked = "0"; } }; /* $scope.$watch('model.isChecked', function(val, oldVal) { if(!checkIsOk(val)){ $scope.model.isChecked = oldVal; } }); */ var checkIsOk = function(val){ if(val=='1'){ return false; } return true; }; }); angular.element(document).ready(function() { angular.bootstrap(document,['myApp']); });
按理解,$watch应该也是能达到目的,但在验证过程中发现$watch在校验不通过时,模型值虽然正常控制了,但页面上这两个单按钮都被选中了。
相关推荐
在AngularJS中,我们可以使用`ngModel`指令来绑定单选按钮的值到控制器中的变量,`ngValue`用来指定按钮的值,而`ngChecked`则控制按钮的选中状态。以下是一个简单的单选按钮组示例: ```html 请选择一个颜色: ...
在AngularJS中,单选框(Radio Button)的使用是一个常见的需求,特别是在构建表单时。AngularJS通过其数据绑定和指令系统简化了这个过程。本文将深入探讨如何使用AngularJS处理单选框,以及在遇到问题时如何解决。 ...
ng-model通常用于文本输入、复选框、单选按钮等,它会捕获用户输入并更新模型。而ng-value则更倾向于设置输入元素的初始值,不涉及用户的交互变化。 4. **应用实例** 在实际开发中,ng-value常用于预填充表单字段...
在本实例中,我们将重点介绍如何利用AngularJS来制作一个简单的购物车功能,包括计算商品价格和删除购物车中的商品。 为了实现购物车功能,我们将使用AngularJS的数据绑定、指令、控制器和作用域。数据绑定允许我们...
在AngularJS的世界里,"angular_dz7:单选按钮指令"是一个关于如何在应用中使用AngularJS的自定义指令来处理单选按钮(radio buttons)的实例。在这个项目中,我们可能看到了一个名为`angular_dz7-master`的压缩包,...
比如文本输入框(input[type="text"])、单选按钮(input[type="radio"])、复选框(input[type="checkbox"])等,都可以通过browserTrigger来模拟用户的行为。 browserTrigger的一个重要特性是它加入了很多浏览器...
在本文中,我们将深入探讨如何使用AngularJS实现多选按钮的全选与反选功能。AngularJS是一个流行的前端JavaScript框架,它提供了数据绑定、依赖注入和指令等特性,使得构建动态网页变得更加简单。在购物车或者任何...
ng-model指令不仅限于文本框元素,它也可以用在其他表单元素上,如复选框、单选按钮和下拉列表等。当表单元素的值发生变化时,ng-model会监听这些变化并同步更新模型中的数据,同时也同步更新视图。 需要注意的是,...
随后,`ng-disabled="all"`指令被应用到其他表单元素(文本输入框、单选按钮和下拉列表)上。当`all`的值为`true`时,这些表单元素将被禁用;当`all`的值为`false`时,这些表单元素将被启用。 `ng-disabled`指令...
本文通过实例详细讲解了如何利用AngularJS实现这一功能,主要涉及`ng-disabled`、`ng-show`和`ng-hide`等指令。 1. `ng-disabled`指令: `ng-disabled`用于控制HTML表单元素的禁用状态。它接收一个表达式作为参数,...
HTML解码属性值*一次添加消息侦听器*允许文档中包含更长的文本*在属性集合中添加单选按钮值*从操作中删除单选按钮参数*模板调整*添加后备m 选项按钮的机制*代码重组版本1.1.2 *使用更好和更广泛的机制来获取标签文本...
虽然 `v-model` 在创建某些类型的表单元素(如复选框和单选按钮)的组件时可能会带来不便,因为它默认假设所有的输入都是文本类型,但可以通过自定义组件和事件来克服这个限制。例如,你可以创建一个自定义的复选框...