美文网首页Web 前端开发
手动触发事件实现checkbox的选中与取消

手动触发事件实现checkbox的选中与取消

作者: luichooy | 来源:发表于2016-09-18 10:17 被阅读4828次
  1. 要实现的效果
    如下图所示,当点击li元素的时候,实现左侧checkbox的选中和取消,并且监测选中订单的数量和金额变化,将数据实时绑定到下方的“选择订单”和“金额”上面。


    1.png
  2. dom结构
    strVar += "<li class="mui-table-view-cell" data-flag = "0" onclick="onListClick(this)">";
    strVar += "<a class="mui-navigate-right">";
    strVar += "<div class="mui-checkbox mui-pull-left checkboxArea">";
    strVar += "<input name="checkbox" value="" type="checkbox" data='"+JSON.stringify(temp)+"'>";
    strVar += "</div>";
    strVar += "<div class="mui-pull-right tixianInfo" >";
    strVar += "<p class="orderByInfo mui-clearfix">";
    strVar += "<span class="orderByName mui-pull-left">"+temp.ShareClientName+"</span>";
    strVar += "<span class="orderTime mui-pull-right">"+temp.AddTime.split(' ')[0]+"</span>";
    strVar += "</p>";
    strVar += "<p class="proInfo">";
    strVar += "<span class="ProName">"+temp.ProName+"</span>";
    strVar += "<span class="proPrice">¥"+temp.TrueTotal+"</span>";
    strVar += "<span class="proCount">x"+temp.Number+"</span>";
    strVar += "</p>";
    strVar += "<p class="orderTiCheng">此订单获得提成:¥"+temp.Money+"</p>";
    strVar += "</div>";
    strVar += "</a>";
    strVar += "</li>";

  3. js部分
    //observeChange用来监测checkbox的change事件,并进行逻辑处理
    function observeChange(){
    var list = document.getElementById('list');
    //监测所有inputcheckbox)的变化
    mui('#list').on('change','input',function(){
    //选中的checkbox的数量
    var checkedbox = list.querySelectorAll('input[type="checkbox"]:checked');
    var count = checkedbox.length;
    //将选中的checkbox的数量赋值给底部的选择订单
    orderCount.innerHTML = count;//orderCount即为'选择订单'

             var totalMoney = 0;
             //该数组用来存储选中订单的订单号
             SelectIDSArray = [];
             for(var i = 0;i<checkedbox.length;i++){
                 var item = checkedbox[i];
                 //item是通过ajax从后台请求的订单数据,该数据为JSON数据。
                 var obj = JSON.parse(item.getAttribute('data'));
         
                 //将选中的订单ID存储起来
                 SelectIDSArray.push(obj.OrderNum);
                 totalMoney += parseFloat(obj.Money);
             }
             tixianMoney.innerHTML = '¥'+totalMoney.toFixed(2);      
          });
     }
     
     //onListClick用来手动触发checkbox的change事件,切换checkbox的选中和取消
     function onListClick(obj){
         var flag = obj.getAttribute('data-flag');
         if(flag == 0){
             $(obj).find('input')[0].checked = true;
             obj.setAttribute('data-flag',1);
     
             $($(obj).find('input')[0]).trigger('change');
         }else{
             $(obj).find('input')[0].checked = false;
             obj.setAttribute('data-flag',0);
             $($(obj).find('input')[0]).trigger('change');
         }
     }

相关文章

  • 手动触发事件实现checkbox的选中与取消

    要实现的效果如下图所示,当点击li元素的时候,实现左侧checkbox的选中和取消,并且监测选中订单的数量和金额变...

  • iCheck 绑定事件

    在项目遇到给icheck插件下的checkbox添加事件的问题,查询得知:选中事件: 取消选中事件: 上述id注意...

  • RadioGroup和RadioButton

    特点: RadioButton和CheckBox的区别在于,checkBox选中之后可以取消选中,但radioBu...

  • 鸿蒙学习-Checkbox

    Checkbox实现选中和取消选中的功能。从代码上看和RadioButton没有区别,但是由于SDK并没有开源,没...

  • checkbox选中\取消

    1设置第一个checkbox 为选中值 $('input:checkbox:first').attr("check...

  • CheckBox多选框

    CheckBox为CompoundButton子类 实现CheckBox,并输出选中CheckBox结果 取得已经...

  • 2018-08-24

    在Axure RP 8的触发事件中新增了【选中时】这个触发事件。 利用这个触发事件我们也可以实现图片轮播的交互。 ...

  • layui table checkbox 选中事件

    其实layui table checkbox是有选中事件的table.on('checkbox(personTab...

  • 开发过程记录关键点

    2021年2月19日 RecycleView 跟 CheckBox嵌套使用,滑动后已选中的CheckBox会取消选...

  • checkbox、radiobox、select常用操作

    checkbox选中、不选中及事件绑定 radiobox选中、不选中及组合 select选中option及获取值

网友评论

    本文标题:手动触发事件实现checkbox的选中与取消

    本文链接:https://www.haomeiwen.com/subject/tdiwettx.html