惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
量子位
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
Jina AI
Jina AI
L
LangChain Blog
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学

博客园 - EdisonZ

TFS 服务器更换后工作区无法绑定 导出你的GAC Assembly中的DLLS MICROSOFT REPORT VIEWER 2012之无法加载相关的dll 查询可用的Nuget服务地址 认识k_BackingField【转】 EntityFramework 中生成的类加注释 Bat命令知识[转] 利用bat批量执行脚本文件 SQL Server 2012 LocalDB 管理之旅 【转】Windows环境下.NET 操作Oracle问题 VS2012下使用 LocalDB [转]无法安装MVC3,一直卡在vs10-kb2483190 “配置系统未能初始化” 解决方法 DSOFramer使用说明(转载))) 所有HTTP 状态代码及其定义 swfupload 上传SecurityError Error #2156 什么是HTTP Headers? 如何把彩色网页快速变为灰色网页? IIS 应用程序池设置
Jquery EasyUI Form Load自动绑定Checkbox问题
EdisonZ · 2012-08-10 · via 博客园 - EdisonZ

问题原因

网站采用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;
};