jQuery MiniUI

 找回密码
 立即注册
查看: 4248|回复: 8
打印 上一主题 下一主题

【bug】 在firefox 下,设置表单数据无效 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-10-16 12:37:38 |只看该作者 |倒序浏览
环境:firefox24最新版本,windows xp系统
代码如下:SetData(data) 方法片段
                var data = mini.clone(data);
                $.ajax({
                    url: "${ctx}/b/b!formd.action?bid=" + data.bid,
                    cache: false,
                    success: function (text) {
                        var o = mini.decode(text);
                        form.setData(o);
                        form.setChanged(false);
                    }
                });

url执行时有数据的,表单页面所有元素却没有值。(另:IE6、Chrome下正常)




Rank: 8Rank: 8

沙发
发表于 2013-10-16 16:04:10 |只看该作者
不会的.

你用出错的浏览器看下:http://www.miniui.com/demo/#src=form/form.html

里面的loadForm(),他也是加载一个数据,然后设置给表单控件,你看下是否正常

Rank: 2

板凳
发表于 2013-10-16 17:35:36 |只看该作者
本帖最后由 shixianchun 于 2013-10-16 17:50 编辑
factory 发表于 2013-10-16 16:04
不会的.

你用出错的浏览器看下:http://www.miniui.com/demo/#src=form/form.html

我是从列表打开一个表单的,通过标准方法接口定义的方法SetData 设置表单的。IE和chrome没有问题。firefox下不行真的很神奇,写的一模一样的。就是不行

Rank: 8Rank: 8

地板
发表于 2013-10-17 09:11:18 |只看该作者
shixianchun 发表于 2013-10-16 17:35
我是从列表打开一个表单的,通过标准方法接口定义的方法SetData 设置表单的。IE和chrome没有问题。firefox ...

http://www.miniui.com/demo/#src=datagrid/detailform.html

是这个样子的? 你用你出错的FF测试下试试,或者你换台机器用FF试试呢,也有可能是FF版本的问题,更新到最新试试

Rank: 2

5#
发表于 2013-10-17 13:56:39 |只看该作者
factory 发表于 2013-10-17 09:11
http://www.miniui.com/demo/#src=datagrid/detailform.html

是这个样子的? 你用你出错的FF测试下试试, ...

我先说说操作逻辑吧:
1、进入列表datagrid:
点击行上,执行对应方法
var row = grid.getRowByUID(uid);//获取行对象
            mini.open({
                    allowDrag: false,
                    url: "${ctx}/business/bz_form.jsp",
                title: '编辑',
                                width: '100%', height: '100%',
                onload: function () {
                    var iframe = this.getIFrameEl();
                    var data = { action: "load", bzid: row.bzid};
                    iframe.contentWindow.SetData(data);
                },
                ondestroy: function (action) {
                           if(action!='cancel'){
                      grid.reload();
                    }
                }
            });
2、然后弹出bz_form.jsp 页面
页面内含有,标准方法接口定义:
        function SetData(data) {
            if (data.action == "load") {
                //跨页面传递的数据对象,克隆后才可以安全使用
                var data = mini.clone(data);
                var form = new mini.Form("#form1");
                $.ajax({
                    url: "${ctx}/business/bz!formjson.action?bzid=" + data.bzid,
                    success: function (text) {
                        var o = mini.decode(text);
                        form.setData(o);
                    }
                });
            }
        }

火狐浏览器上有问题(表单数据没有被装载,实际url 返回了数据)。IE、chrome下一切正常。
难道是我datagrid被嵌套在一个iframe中的缘故?除了这个原因,我想不到其他的解释了。

Rank: 8Rank: 8

6#
发表于 2013-10-17 14:30:07 |只看该作者
shixianchun 发表于 2013-10-17 13:56
我先说说操作逻辑吧:
1、进入列表datagrid:
点击行上,执行对应方法

这个例子跟我们的demo是完全一样的呀
http://www.miniui.com/demo/#src=datagrid/datagrid.html

这个例子,你可以下载java后台的demo,然后运行下在你的FF下看看,
现在这个例子,在FF下是正常的

Rank: 2

7#
发表于 2013-10-17 15:49:16 |只看该作者
factory 发表于 2013-10-17 14:30
这个例子跟我们的demo是完全一样的呀
http://www.miniui.com/demo/#src=datagrid/datagrid.html

你上面的例子是可以的。但是我和你写的是一致的。不知道是不是由于外面iframe的缘故。

Rank: 8Rank: 8

8#
发表于 2013-10-17 16:06:08 |只看该作者
shixianchun 发表于 2013-10-17 15:49
你上面的例子是可以的。但是我和你写的是一致的。不知道是不是由于外面iframe的缘故。 ...

你做个HTML示例,数据用几条静态的,打包上传上来我看下

Rank: 2

9#
发表于 2015-9-23 21:58:25 |只看该作者
也遇到同样问题。
解决方法:做ajax请求时添加 dataType: "text", Firefox就可以正常解析了

Archiver|普加软件

GMT+8, 2024-10-7 22:27 , Processed in 1.084334 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部