Jquery和angularjs获取check框选中的值的方法汇总


Posted in Javascript onJanuary 17, 2016

在我们平常的开发中,有时候会需要获取一下check框选中的值,以及check框选中行的所有信息。这个时候有一个小技巧那就是我们可以把要获取的信息全部放到check框的值里面,这样我们可以获取check框选中值的时候也就相当于获取了当前行的信息。

<td><input class="states" type="checkbox"  name="orders"  value="{{e.merchantId}},{{e.orderCode}},{{e.userId}}"/></td> 

全选全不选:

var bischecked=$('#cboxchecked').is(':checked'); 
    var fruit=$('input[name="orders"]'); 
    fruit.prop('checked',bischecked);

这里为什么要用prop而不用attr,这是因为

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
获取选中的值:

$('input[name="orders"]:checked').each(function(){ 
      var sfruit=$(this).val(); 
      var orders=sfruit.split(","); 
      var reminder=new Object(); 
      reminder.merchantId=orders[0]; 
      reminder.orderCode=orders[1]; 
      reminder.userId=orders[2]; 
  
      });

angularjs实现:

使用angularjs我们不用去操作dom,我们只需要去关心这个值的状态;
首先看一下html代码:

<!DOCTYPE html> 
 <html data-ng-app="App"> 
 <head> 
   <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script> 
   <script src="script2.js"></script> 
 </head> 
 <body data-ng-controller="AddStyleCtrl"> 
  
   <div>Choose Tags</div>   
   <div> 
     <div>You have choosen:</div> 
     <hr> 
     <label data-ng-repeat="selectedTag in selectedTags"> 
       (({{selectedTag}})) 
     </label> 
     <hr> 
     <div data-ng-repeat="category in tagcategories"> 
       <div>{{ category.name }}</div> 
       <div data-ng-repeat="tag in category.tags"> 
         <div> 
           <input type="checkbox" id={{tag.id}} name="{{tag.name}}" ng-checked="isSelected(tag.id)" ng-click="updateSelection($event,tag.id)"> 
           {{ tag.name }} 
         </div> 
       </div> 
       <hr> 
     </div> 
   </div> 
  
 <pre>{{selected|json}}</pre> 
 <pre>{{selectedTags|json}}</pre> 
  
 </body> 
 </html>

line2 定义了AngularJS App;
line4 引入angularjs脚本;
line5 引入自己写的script2.js脚本;
line7 指定控制器AddStyleCtrl
line13-15 实时显示已选标签给用户看;
line17-line26 使用双重循环列出数据库(本例中就存储在了controller的一个对象里)中的数据;
line21的这行代码作用可大了:<inputtype="checkbox" id={{tag.id}}name="{{tag.name}}" ng-checked="isSelected(tag.id)" ng-click="updateSelection($event,tag.id)">

存储了tag的id,name,利用isSelected(tag.id)来判断是否被checked,点击时候调用updateSelection($event,tag.id)方法;

如果想 ng-click 触发的函数里获取到该触发该函数的元素不能直接传入 this ,而需要传入event。因为在Angularjs里面,这个地方的this是 scope 。我们可以传入 event,然后在函数里面通过 event.target 来获取到该元素。
line29-30 是测试时候给自己看的,可以看到selected数组和selectedTags数组中的内容;

然后看看AngularJS代码:(script2.js)

/** 
 * Created by zh on 20/05/15. 
 */ 
// Code goes here 
 
var iApp = angular.module("App", []); 

iApp.controller('AddStyleCtrl', function($scope) 
{ 
  $scope.tagcategories = [ 
    { 
      id: 1, 
      name: 'Color', 
      tags: [ 
        { 
          id:1, 
          name:'color1' 
        }, 
        { 
          id:2, 
          name:'color2' 
        }, 
        { 
          id:3, 
          name:'color3' 
        }, 
        { 
          id:4, 
          name:'color4' 
        }, 
      ] 
    }, 
    { 
      id:2, 
      name:'Cat', 
      tags:[ 
        { 
          id:5, 
          name:'cat1' 
        }, 
        { 
          id:6, 
          name:'cat2' 
        }, 
      ] 
    }, 
    { 
      id:3, 
      name:'Scenario', 
      tags:[ 
        { 
          id:7, 
          name:'Home' 
        }, 
        { 
          id:8, 
          name:'Work' 
        }, 
      ] 
    } 
  ]; 
 
  $scope.selected = []; 
  $scope.selectedTags = []; 
 
  var updateSelected = function(action,id,name){ 
    if(action == 'add' && $scope.selected.indexOf(id) == -1){ 
      $scope.selected.push(id); 
      $scope.selectedTags.push(name); 
    } 
    if(action == 'remove' && $scope.selected.indexOf(id)!=-1){ 
      var idx = $scope.selected.indexOf(id); 
      $scope.selected.splice(idx,1); 
      $scope.selectedTags.splice(idx,1); 
    } 
  } 
 
  $scope.updateSelection = function($event, id){ 
    var checkbox = $event.target; 
    var action = (checkbox.checked?'add':'remove'); 
    updateSelected(action,id,checkbox.name); 
  } 
 
  $scope.isSelected = function(id){ 
    return $scope.selected.indexOf(id)>=0; 
  } 
});
Javascript 相关文章推荐
javascript获取当前日期时间及其它操作函数
Jan 11 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
ajax请求data遇到的问题分析
Jan 18 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
JS中==、===你分清楚了吗
Mar 04 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 Javascript
node.js+express制作网页计算器
Jan 17 #Javascript
JQuery实现网页右侧随动广告特效
Jan 17 #Javascript
Validform+layer实现漂亮的表单验证特效
Jan 17 #Javascript
javascript实现倒计时跳转页面
Jan 17 #Javascript
jQuery实现图片走马灯效果的原理分析
Jan 16 #Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 #Javascript
input点击后placeholder中的提示消息消失
Jan 15 #Javascript
You might like
JavaScript 数组循环引起的思考
2010/01/01 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python os模块介绍
2014/11/30 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
用Python解决计数原理问题的方法
2016/08/04 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
python搜索包的路径的实现方法
2019/07/19 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
Python类型转换的魔术方法详解
2020/12/23 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
军校本科大学生自我评价
2014/01/14 职场文书
庆八一活动方案
2014/01/25 职场文书
数学系个人求职信范文
2014/01/30 职场文书
公司门卫管理制度
2014/02/01 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
一帮一活动总结
2014/05/08 职场文书
大学生党性分析材料
2014/12/19 职场文书
期中考试后的感想
2015/08/07 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js