`

AngularJS单选按钮实例

阅读更多

        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在校验不通过时,模型值虽然正常控制了,但页面上这两个单按钮都被选中了。

  • 大小: 3.6 KB
  • 大小: 3.7 KB
  • 大小: 3.6 KB
分享到:
评论

相关推荐

    AngularJS单选、复选框

    在AngularJS中,我们可以使用`ngModel`指令来绑定单选按钮的值到控制器中的变量,`ngValue`用来指定按钮的值,而`ngChecked`则控制按钮的选中状态。以下是一个简单的单选按钮组示例: ```html 请选择一个颜色: ...

    Angularjs单选框相关的示例代码

    在AngularJS中,单选框(Radio Button)的使用是一个常见的需求,特别是在构建表单时。AngularJS通过其数据绑定和指令系统简化了这个过程。本文将深入探讨如何使用AngularJS处理单选框,以及在遇到问题时如何解决。 ...

    AngularJS ng-value 指令-AngularJS 实例.zip

    ng-model通常用于文本输入、复选框、单选按钮等,它会捕获用户输入并更新模型。而ng-value则更倾向于设置输入元素的初始值,不涉及用户的交互变化。 4. **应用实例** 在实际开发中,ng-value常用于预填充表单字段...

    Angularjs 制作购物车功能实例代码

    在本实例中,我们将重点介绍如何利用AngularJS来制作一个简单的购物车功能,包括计算商品价格和删除购物车中的商品。 为了实现购物车功能,我们将使用AngularJS的数据绑定、指令、控制器和作用域。数据绑定允许我们...

    angular_dz7:单选按钮指令

    在AngularJS的世界里,"angular_dz7:单选按钮指令"是一个关于如何在应用中使用AngularJS的自定义指令来处理单选按钮(radio buttons)的实例。在这个项目中,我们可能看到了一个名为`angular_dz7-master`的压缩包,...

    AngularJS辅助库browserTrigger用法示例

    比如文本输入框(input[type="text"])、单选按钮(input[type="radio"])、复选框(input[type="checkbox"])等,都可以通过browserTrigger来模拟用户的行为。 browserTrigger的一个重要特性是它加入了很多浏览器...

    用angular实现多选按钮的全选与反选实例代码

    在本文中,我们将深入探讨如何使用AngularJS实现多选按钮的全选与反选功能。AngularJS是一个流行的前端JavaScript框架,它提供了数据绑定、依赖注入和指令等特性,使得构建动态网页变得更加简单。在购物车或者任何...

    AngularJS入门教程之数据绑定用法示例

    ng-model指令不仅限于文本框元素,它也可以用在其他表单元素上,如复选框、单选按钮和下拉列表等。当表单元素的值发生变化时,ng-model会监听这些变化并同步更新模型中的数据,同时也同步更新视图。 需要注意的是,...

    AngularJS基础 ng-disabled 指令详解及简单示例

    随后,`ng-disabled="all"`指令被应用到其他表单元素(文本输入框、单选按钮和下拉列表)上。当`all`的值为`true`时,这些表单元素将被禁用;当`all`的值为`false`时,这些表单元素将被启用。 `ng-disabled`指令...

    AngularJS实现表单元素值绑定操作示例

    本文通过实例详细讲解了如何利用AngularJS实现这一功能,主要涉及`ng-disabled`、`ng-show`和`ng-hide`等指令。 1. `ng-disabled`指令: `ng-disabled`用于控制HTML表单元素的禁用状态。它接收一个表达式作为参数,...

    硒页面对象发电机「Selenium Page Object Generator」-crx插件

    HTML解码属性值*一次添加消息侦听器*允许文档中包含更长的文本*在属性集合中添加单选按钮值*从操作中删除单选按钮参数*模板调整*添加后备m 选项按钮的机制*代码重组版本1.1.2 *使用更好和更广泛的机制来获取标签文本...

    深入理解Vue 单向数据流的原理

    虽然 `v-model` 在创建某些类型的表单元素(如复选框和单选按钮)的组件时可能会带来不便,因为它默认假设所有的输入都是文本类型,但可以通过自定义组件和事件来克服这个限制。例如,你可以创建一个自定义的复选框...

Global site tag (gtag.js) - Google Analytics