修正EasyUI的BUG——Form中存在FileBox时的数据加载错误

使用EasyUI加载服务端返回的数据时常用 $('#fm').form('load', row); 实现,既方便又简洁,但是,当Form中包含有FileBox时,代码就会报错,经过跟踪发现,因为EasyUI试图向隐藏的文件标签<input type="file">赋值,导致了错误。其源代码如下:

initValue: function(jq, _4d9) {
	return jq.each(function() {
		var _4da = $.data(this, "textbox");
		_4da.options.value = "";
		$(this).textbox("setText", _4d9);
		_4da.textbox.find(".textbox-value").val(_4d9);
		$(this).val(_4d9);
	});
},
错误由 _4da.textbox.find(".textbox-value").val(_4d9); 这句导致的,故知需要把它改写一下,使其在处理文件标签时跳过该赋值过程即可。修改后的代码如下:

initValue: function(jq, _4d9) {
    return jq.each(function() {
        var _4da = $.data(this, "textbox");
        _4da.options.value = "";
        $(this).textbox("setText", _4d9);
        var obj = _4da.textbox.find(".textbox-value");
        if (obj.attr("type") != "file") {
            obj.val(_4d9);
        }				
        $(this).val(_4d9);
    });
}
当然,若你这个页面仅仅是显示加载后的数据,那么没有什么问题,若你还可以再次提交,做Update操作,那么你得小心了,因为此时虽然页面上显示了文件的服务器路径,但是,最终实际提交到服务器的文件标签内并没有实际指向任何本地文件,故提交出去的文件是空的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值