复选框回显 选用prop()不用attr()

更新日期: 2019-03-19阅读: 2k标签: 复选框

设置一个复选框回显示,使用attr()添加checked属性。但是在回显的过程中会使复选框出现混乱的情况有一些并没有回显。如果给他添加一个checked的class就会导致复选框不可点击这种做法是不对的,需要用prop替代  

function updateCheckboxState(data, type) {    
            var elType = type ? ('#' + type + '_') : '#';
            for (var x in data) {
                if (data[x] == '1') {
                    $(elType + x).prop('checked', true);
                    // $(elType + x).addClass('checked');
                } else {
                    $(elType + x).prop('checked', false);
                    // $(elType + x).removeClass('checked');
                }
            }
}   

现在说一下为什么需要用prop()替代呢?使用attr()点击 checkbox,结果都是 undefined。
attr() prop()两者分别是获取/设置 attributes 和 properties 的方法

什么时候使用attr(),什么时候使用prop()?
根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

attr() 里面,最关键的两行代码
elem.setAttribute( name, value + "" ); 
ret =  elem.getAttribute( name );


很明显的看出来,使用的 domapi setAttribute() 和 getAttribute() 方法操作的属性元素节点。

prop() 里面,最关键的两行代码
return ( elem[ name ] = value );
return elem[ name ];
//可以理解为 document.getElementById(el)[name] = value,这是转化成 element 的一个属性。

//或者
$('elType + x').attr('value',true/false)

链接: https://www.fly63.com/article/detial/2437

css input checkbox复选框控件 样式美化的多种方案

checkbox复选框可能是网站中常用的HTML元素,但大多数人并不满意它的默认样式,这篇文章就讲讲如何实现input checkbox复选框控件 样式美化效果。::before和::after伪元素的用法

css 实现 checkbox 大小调整

一般调整 checkbox 大小我们想到的是 width、height,可是设置后,发现是没有效的。如微信小程序里面,checkbox 默认就很大,想设置小一点怎么办?

纯css实现checkbox的checked样式

今天使用微信的WEUI的checkbox的时候,发现点击checkbox是有checked和unchecked的变化的,但是想要去获得checkbox的checked状态时,发现event listener里居然没有该checkbox的click之类的事件。

单击label触发checkbox,checkbox触发click

在桌面程序中,checkbox 后面是带文字的,单击文字就会选中或取消选中选择框,点起来很方便,但 HTML 中 checkbox 是干的,单起来非得把鼠标移到那个小小的 checkbox 框框上

javascript如何判断复选框是否选中?

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。

纯CSS改写radio和checkbox,单选框、复选框样式优化

input 的单选框 radio 和复选框 checkbox 是样式是很难调的,设置背景和边框都不起效。我们可以使用下面的方法进行样式美化:纯CSS就能实现。

checkbox 样式美化

checkbox无法直接改变样式只能通过连接到label标签来改变checkbox的样式思路都一样的,先把之前的按钮透明度opacity设置为0,然后外层用div包裹,就实现了美化功能。下面会讲到几种与众不同的checkbox复选框样式。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!