EasyUI之Form load函数IE捌下设置Radio或Checkbox的BUG

不久前在运用EasyUI时,开采表单上一经运用radio时,在IE八会加载出错,错误如下:

“in”的操作数无效: 缺乏 Object

   1: function _3fa(name,val){

   2: var rr=$(_3f7).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]");

   3: rr._propAttr("checked",false);

   4: rr.each(function(){

   5: var f=$(this);

   6: if(f.val()==String(val)||$.inArray(f.val(),val)>=0){

   7: f._propAttr("checked",true);

   8: }

   9: });

  10: return rr;

  11: };

唯独供给小心一点的是,其是依照控件的name属性来同盟的。

于是有bug不要怕,只要有措施找到原因就好(开采职职员和工人具一定要用好,但毫无盲目出手)。希望EasyUI的下七个本子能够消除该难题。

钉住下去就会发掘,bug在那边:

也得以钦命json,比方:

   1: if(f.val()==String(val)||$.inArray(f.val(),val)>=0){

   2: f._propAttr("checked",true);

   3: }

图片 1

图片 2

EasyUI的form的load函数很好用,表单赋值就靠它了,轻松方便。大家得以钦赐url以Ajax加载,如:

由此看来那如故Jquery的bug,可是不能够算bug吧,所谓拉屎不出不可能怪坑太小,开荒者不剖断,不可能怪别人,于是bug很好化解了:

JSON如下:

因为是IE八有标题,那么能够在rr上安装三个断点,并且安装多少个标准,例如:

   1: $('form').form('load',  {"初审申请日期":"2013-05-30","伦理委员会受理编号":"123234",

   2: "是否否决过":"是","是否终止过":"是","主要研究者姓名":"37","主要研究者单位":"123"

   3: ,"主要研究者科室":"上海市XXXXXXXX医院","主要研究者联系电话":"123",

   4: "主要研究者联系传真":"123","主要研究者联系Email":"123",

   5: "主要研究者指定联系人姓名":"123","主要研究者指定联系人电话":"123",

   6: "主要研究者指定联系人Email":"123","专业负责人":"34","研究方案名称":"123123123",

   7: "研究方案编号":"123123123","申办者名称":"123123123","申办者地址":"123123123",

   8: "申办者联系人":"123123123","申办者电话":"1231231231","临床监查员姓名":"1232312312"

   9: ,"临床监查员电话":"12312313","本中心招募受试者人数":"12313123","总人数":"123123123",

  10: "预期试验期限开始":"2013-06-15","预期试验期限结束":"2013-06-25","试验用品":"药物",

  11: "产品名称":"werqre","药物分类":"种类一","医疗器械分类":"种类一","试剂分类":"种类一",

  12: "使用方式":"创伤性","多中心试验":"是","研究形式":"第一期","研究形式观察":"观察",

  13: "研究对象":"正常人","年龄范围18-44":"18-44","儿童年龄小于1":"小于1","弱势群体孕妇胎儿":"孕妇胎儿","弱势群体文盲":"文盲","要求排除对象女性":"女性","要求排除对象其他补充":"","特殊条件隔离区":"隔离区","特殊条件管制药品":"管制药品","特殊条件器官移植备注":"","特殊条件其他备注":"","利益冲突声明":"123123"}); 

以此原则值是radio的name。

在调治窗口输入就会意识:

   1: $('#ff').form('load', 'ajax/common')

图片 3

对此那种难题,只好见招拆招了。首先分析Jquery.easyui.min.js,十分的快就能够开采,判别代码在那里:

   1: function _3fa(name,val){

   2: var rr=$(_3f7).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]");

   3: rr._propAttr("checked",false);

   4: rr.each(function(){

   5: var f=$(this);

   6: if(f.val()==String(val)|| ($.isArray(val) && $.inArray(f.val(),val)>=0)){

   7: f._propAttr("checked",true);

   8: }

   9: });

  10: return rr;

  11: };