修正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操作,那么你得小心了,因为此时虽然页面上显示了文件的服务器路径,但是,最终实际提交到服务器的文件标签内并没有实际指向任何本地文件,故提交出去的文件是空的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 19:34:01

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

arcgis python 使用光标和内存中的要素类将数据加载到要素集

使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOutput = True arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal", "servertools") # List of coordinates coordinates = [[-117.196717216, 34.046944853], [-117.186226483, 3

Thymeleaf中使用markdown时出现markdown加载不进来的问题?

解决方法: //初始化markdownvar contentEditor;$(function () { contentEditor = editormd("content-editormd", { width: "100%", height: 640, syncScrolling: "single", path: "/lib/editor_md/lib/" //thymeleaf中路径写法 });}); 原文地址:https

浅谈Entity Framework中的数据加载方式

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Architecture.aspx,其中的一系列文

ie下ajaxSubmit提交form中包含file时,提示下载(后台采用struts2)

原因:主要是后台传回的数据的响应方式,默认是application/***,要将其修改成text/html,这样返回的是字符串,到前台,如果需要可以将其转成所需格式 解决方案: 前台 提交前的校验 1 var validateForm = function() { 2 var flag = true; 3 if (window.ActiveXObject) { 4 IE下的处理……修改flag11 } else if (window.MessageEvent && !document.ge

easyui中的datagrid的数据加载的问题

我们在第一次使用easyui的datagrid的url加载所需的数据时,如果第二次加载数据我们使用的不是ulr而是数据返回结果进行加载的时候$("#div").datagird('loadData',data)就如同这样,我们是不能将最新的数据加载上的,表单加载的数据仍然是原来的数据,因为url还是原来的url,datagrid会按照原来的数据进行加载,这时候我们如果想要加载数据的时候可以使用$("#div").datagrid({url,"",

Django form表单的数据加载问题

今天在项目中遇到一个问题,有个django增删改查的模板页面,其中的编辑页面使用自定的form来构建的显示内容. 表单的数据时从数据库中查询出来展示的,当修改数据库的内容后,form的展示的信息并没有修改.当重启后,form的数据重新加载. 查了许多资料,都没有对form表单数据的加载时间的解答. 从现象来看,form的数据的加载时在服务启动时,就加载了.代码如下: view.py def testform(req):     form = testForms.testForm()     pr

form表单中控件较多,加载完成后切换页面都很慢的解决方法

form表单中控件较多,加载完成后点击都很慢,为什么?我一页面中form表单里面上百个控件(如input.select.radio.checkbox等),还有一些js脚本,加载速度还可以,都能全部显示完毕,但是点击一些事件(如切换tab.关闭模拟框,点击radio等)都非常慢,不知道为什么? 当我采用inprivate模式浏览时,以上动作都很快,但老用inprivate也麻烦,有何办法解决. 按理说form都在客户端显示完全了,其他操作都是客户端的操作阿应该不慢才对阿/. ------解决思路-

谈谈easyui datagrid 的数据加载(转)

这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法. 这里就自己的使用经验,对两种方式做简单总结和归纳,并且对使用过程中容易产生的误区做较为详细的描述,希望能对大家有所帮助. url方式加载数据 调用方式 目前可能大多数人都是选择这种方式,因为跟流行的框架结合的也比较好,使用url的话,可以将

【颗粒归仓】(一)jQuery easyui datagrid 的数据加载

其实easyuidatagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数据:另一种是加载js对象,也就是使用loadDate方法,这种方法用于加载本地js数据(非url调用).在项目中我用到的以及研究别人代码中用到的普遍是第一种,下面就分别对他们进行总结. 一.ajax加载目标url返回的json数据 首先明确,通过ajax加载目标url返回的值不一定是json格式,在http://blog.csdn.net/luckystar689/article/details/5