项目中用的jquery-1.10.2 需要检测一个checkbox的选中状态,想当然的用 .attr("checked") ,结果发现,无论是否选中,这个值都是 undefined 未定义。
查找资料,特此记录:
jq官网说明:
As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. In addition, .attr() should not be used on plain objects, arrays, the window, or the document. To retrieve and change DOM properties, use the .prop()method.
.attr() 不能用于普通对象,数组,窗口,文档等,要重新获取改变dom属性,用.prop()方法。
用.prop方法确实可行。
贴一段代码如下:
- $('#regSubmit').click(function(){
- var val = $("#reg-checkbox").prop("checked");
- console.log(val);
- if(val =="checked" ||val==true){
- var useremail = $("#reg-email").val();
- var password = $("#reg-password").val();
- var psdHash = HASH.md5(password);
- AUTH.fnReg(useremail,psdHash,function(json){
- $("#login-email").attr("value",useremail);
- });
- }
- else{
- alert("亲,请阅读并同意 《中科甲骨云服务条款》!");
- }
- });