2007-11-24
dojo常见问题讨论
刚才使用dojo1.0.1发现一个奇怪的问题:
首先陈述一下熊的的开发环境:
首先,先解释一下base标签的作用:确保文档中所有的相对URL都可以被分解成正确的文档地址,即使在文档本身被移动或重命名的情况下也可以正确解析。当使用时,base 元素必须出现在文档的 head 内,在任何用于引用外部资源的元素之前。
鉴于它的作用,所以一般情况下,兄弟都保留Myeclipse自动帮助生成的这段代码。
但是在测试时发现,如果包含base标签,在IE6下会发生如下错误:
Internet Explorer 无法打开Internet 站点http://localhost:8080/test/formerrjsp。已中止操作。
希望英文好的朋友帮忙问问这个问题的原因。
补充一点,也可能是老调重弹。就是在使用下拉列表框组件时,采用下面的格式:
不要在option的开始和标签之间换行显示。这会导致在运行时看不到我们要显示的选项的情况。这样的错误情况常见于使用工具对代码进行格式化后。
今天在在使用dijit.Editor发现在服务器端读不到数据。经过查找资料,发现解决办法如下:
最近在开发中,碰到一个问题,就是在form表单中同时使用dijit.form.DateTextBox、dijit.Editor时出现问题。要么在服务器端取不到dijit.Editor的值,要么dijit.form.DateTextBox返回的值类似于“Thu Nov 22 2007 00:00:00 GMT+0800”这样的格式。经过多次尝试,找到一个比较简单的解决办法,就是修改dojo中的Form.js的getValues()方法代码如下:
希望英语好的兄弟,在看完这篇文章后,能向dojo组织反映一下,或者有什么好的建议,提出来,大家共同讨论。
首先陈述一下熊的的开发环境:
- Windows 2003
- eclipse3.3.1
- myeclipse6.0.1
- tomcat6.0.24
- jdk1.6.0_03
java 代码
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
xml 代码
- <base href="<%=basePath%>"/>
首先,先解释一下base标签的作用:确保文档中所有的相对URL都可以被分解成正确的文档地址,即使在文档本身被移动或重命名的情况下也可以正确解析。当使用时,base 元素必须出现在文档的 head 内,在任何用于引用外部资源的元素之前。
鉴于它的作用,所以一般情况下,兄弟都保留Myeclipse自动帮助生成的这段代码。
但是在测试时发现,如果包含base标签,在IE6下会发生如下错误:
Internet Explorer 无法打开Internet 站点http://localhost:8080/test/formerrjsp。已中止操作。
希望英文好的朋友帮忙问问这个问题的原因。
补充一点,也可能是老调重弹。就是在使用下拉列表框组件时,采用下面的格式:
xml 代码
- <select name="city">
- <option>石家庄</option>
- <option>保定</option>
- <option>唐山</option>
- <option>秦皇岛</option>
- <option>承德</option>
- select>
不要在option的开始和标签之间换行显示。这会导致在运行时看不到我们要显示的选项的情况。这样的错误情况常见于使用工具对代码进行格式化后。
今天在在使用dijit.Editor发现在服务器端读不到数据。经过查找资料,发现解决办法如下:
js 代码
- function do_submit(form){
- var kw = {
- url: "<%=path%>/first/FirstAction.action",
- content: form.getValues(),//读取表单所有选项的键值对。
- load: function(data){
- //dojo.byId('response').innerHTML = data;
- alert(data);//弹出显示服务器端的响应信息
- },
- error: function(data){
- alert("提交失败: " + data);
- },
- timeout: 2000
- //form: "myForm"//如果使用这种方式,dijit.Editor的数据无法提交
- };
- dojo.xhrPost(kw);//提交表单
- }
xml 代码
- <form dojoType="dijit.form.Form" id="myForm" execute="do_submit(this)">
- ...
- form>
最近在开发中,碰到一个问题,就是在form表单中同时使用dijit.form.DateTextBox、dijit.Editor时出现问题。要么在服务器端取不到dijit.Editor的值,要么dijit.form.DateTextBox返回的值类似于“Thu Nov 22 2007 00:00:00 GMT+0800”这样的格式。经过多次尝试,找到一个比较简单的解决办法,就是修改dojo中的Form.js的getValues()方法代码如下:
js 代码
- getValues: function() {
- // summary: generate JSON structure from form values
- // get widget values
- var obj = {};
- dojo.forEach(this.getDescendants(), function(widget){
- var value = widget.getValue ? widget.getValue() : widget.value;
- var name = widget.name;
- if(!name){ return; }
- // Store widget's value(s) as a scalar, except for checkboxes which are automatically arrays
- if(widget.setChecked){
- if(/Radio/.test(widget.declaredClass)){
- // radio button
- if(widget.checked){
- dojo.setObject(name, value, obj);
- }
- }else{
- // checkbox/toggle button
- var ary=dojo.getObject(name, false, obj);
- if(!ary){
- ary=[];
- dojo.setObject(name, ary, obj);
- }
- if(widget.checked){
- ary.push(value);
- }
- }
- }else{
- //用于处理DAteTextBox类型的数据
- if(widget.value=="Invalid Date" || widget.value=="NaN"){
- value=widget;
- }
- // plain input
- dojo.setObject(name, value, obj);
- }
- });
发表评论
- 浏览: 53858 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
对you must specify a loc ...
非常谢谢你啊!
-- by guoshiyu20 -
dojo 1.1 beta2发布了
dojo1.1 beta3发布了,下载地址:http://download.do ...
-- by noname365 -
对you must specify a loc ...
刚好遇到这个问题,使用你提到的办法解决了。谢谢!
-- by movingboy -
Dojo1.0简介
老兄你的文档终于出来了,多写一些例子:),3x
-- by karan -
dojo1.0.1正式发布了
速度问题是个折中 后台可以考虑,前台Web还是慎重
-- by airport






评论排行榜