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;
};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM