使用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操作,那么你得小心了,因为此时虽然页面上显示了文件的服务器路径,但是,最终实际提交到服务器的文件标签内并没有实际指向任何本地文件,故提交出去的文件是空的。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 19:34:01