Jquery EasyUI Form Load自动绑定Checkbox问题

问题原因

网站采用jquery EasyUi + Asp.net MVC开发,在数据的绑定中使用的easyui form的load方法,此方法可以很方便的将数据绑定的页面的控件中,而不需要单独设置。如需单独设置,只需在loadsuccess事件中增加相应处理方法即可。其中有一个模块的字段使用了checkboxlist,回绑使用自定义方法。在测试环境中没有问题,但一布署到生产环境,就会回绑不了,但是只要一开ie 9 的调试,就可以了,而且在控制台中出现日志输出,搜索jquery easy ui 源码,发现如下代码

function _372(name,val){
var form=$(_36f);
var rr=$("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]",form);
$.fn.prop?rr.prop("checked",false):rr.attr("checked",false);
rr.each(function(){
var f=$(this);
console.log(name+":"+f.val()+","+val);
if(f.val()==String(val)){
$.fn.prop?f.prop("checked",true):f.attr("checked",true);
}
});
return rr;
};

其中

console.log(name+":"+f.val()+","+val);

是在调试时往IE控制台中输出信息,但console方法只在控制台调试中才有效,所以在发布到正式环境时应该注释掉

问题解决

只要注释掉console代码即可,经查看,修改此方法即可实现对checkboxlist的回绑,不需要在loadsuccess中单独实现,实现代码

function _372(name,val){
var form=$(_36f);
var rr=$("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]",form);
$.fn.prop?rr.prop("checked",false):rr.attr("checked",false);
rr.each(function(){
var f=$(this);
    //console.log(name+":"+f.val()+","+val);
    //修改:之前只能对应一个复选框,现在可以对应多个,可自动绑定
        $.each(val.split(','),function(i,item) {
        if(f.val()==String(item)){
        $.fn.prop?f.prop("checked",true):f.attr("checked",true);
        }
    });
});
return rr;
};

转载于:https://www.cnblogs.com/benbenzlj/archive/2012/08/10/jquery-easyui-checkbox.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值