前段时间用DWR做下拉列表级连,当时没注意保持下拉列表查询数据。前几天要求来了,我就开始做,在做的时候,遇到了很郁闷的问题..下面简单介绍一下我的下拉列表实现。
下拉列表是通过DWRUtil.addOptions("id",MAP)实现,一级通过onload的装载,下面级就通过 onChange触发。另外我在JSP也面加了一行<option value="0">--请选择--</option>(这个是初始化作为默认的) 。我用DWRUtil.setValue("id",..)设置默认值,但让我郁闷的是这样设置没效果。加alert测试没效果,我就加了个测试按钮人为的去测试.这样又有值。我就想难道是DWRUtil.setValue问题.我就用老方法for循环一个一个的和原来的值比较加上alert.
var sum=document.getElementById("sum")
for(var i=0;i<sum.length;i++){
alert(sum.options[i].value);
if( sum.Options[i].value==XX){
sum.options.selected=true;
}
}
发现是有个延迟问题. 我开始怀疑我对onload的理解,后来问问人.onload就是页面生成之后加载,这也没错,为什么设置的查询值会被刷掉。
在网上看资料的时候偶然发现DWR也属于AJAX那是异步啊..我原来一直以为DWR是同步的.哎。看书不认真一字之差啊。发现问题所在就简单了.设置DWR同步.DWREngine.setAsync(false);就没大问题了,后面碰到的是数据后面多了空格..网上看了下好多感觉有几个不错.我把他帖上吧
- //为String对象添加Trim,LTrim,RTrim方法
- //去左右空格
- String.prototype.trim = function()
- {
- return this.replace(/(^/s*)|(/s*$)/g, "");
- }
- //去左空格
- String.prototype.LTrim = function()
- {
- return this.replace(/(^/s*)/g, "");
- }
- //去右空格
- String.prototype.RTrim = function()
- {
- return this.replace(/(/s*$)/g, "");
- }
用的时候直接用,
var ttt="aaa ";
ttt=ttt.trim();
本文介绍使用 DWR 实现下拉列表级连过程中遇到的问题及解决方法,包括设置默认值无效的原因分析及解决策略,并分享了处理字符串前后空格的技巧。
375

被折叠的 条评论
为什么被折叠?



