struts2标签s:select 只读解决方案
2010-07-12 15:48
399 查看
使用struts2的<s:select>标签不具有disabled属性,除非将theme设置为simple才可以使用disabled,那么如果不使用simple的theme还有其他办法使select下拉框只读吗?从网上找到了一个办法,大致的思路就是
不让下拉框获得焦点,见下面的html代码:
<span onmousemove="this.setCapture();" onmouseout="this.releaseCapture();" onfocus="this.blur();">
<s:select key="DmsDocument.docZtSpec" name="editEntity.docZtSpec" list="#request['map'].docZtSpec" listKey="code" listValue="name" emptyOption="true" />
</span>
上面的<span>标签控制了不让select下拉框获得焦点,试验了一下还真管用,那么<s:radio>大概也可以用这种方式控制只读吧,也许是可以的.
以上解决方案,见于各大搜索引擎结果,该解决方案并不完美!
用鼠标点击该select控件,确实无法选中也就无法改变,但若用键盘呢,当光标移到select控件上,击向下箭头键,其可选项就可以改变了!
怎么办?
针对带输入控件的界面,我们一般会以回车键代替TAB键,
//回车代替Tab键
function transTabKey(){
if (window.event.keyCode == 13 && event.srcElement.type!='textarea' )//&& event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!=''
window.event.keyCode = 9;
}
于是就有<body onkeydown="transTabKey();">
同样我们可乘此东风把<s:select>键盘事件加以屏蔽,也就是在其onkeydown事件把其他键转为回车,由于回车后可顺利进入下一个控件,从而实现用键盘选取亦不可能。
参见:
<span onmousemove="this.setCapture();" onmouseout="this.releaseCapture();" onfocus="this.blur();">
<s:select key="DmsDocument.docZtSpec" name="editEntity.docZtSpec" list="#request['map'].docZtSpec" listKey="code" listValue="name" emptyOption="true"
onkeydown="javascript:if (window.event.keyCode != 13) window.event.keyCode = 13;" >
</s:select>
</span>
不让下拉框获得焦点,见下面的html代码:
<span onmousemove="this.setCapture();" onmouseout="this.releaseCapture();" onfocus="this.blur();">
<s:select key="DmsDocument.docZtSpec" name="editEntity.docZtSpec" list="#request['map'].docZtSpec" listKey="code" listValue="name" emptyOption="true" />
</span>
上面的<span>标签控制了不让select下拉框获得焦点,试验了一下还真管用,那么<s:radio>大概也可以用这种方式控制只读吧,也许是可以的.
以上解决方案,见于各大搜索引擎结果,该解决方案并不完美!
用鼠标点击该select控件,确实无法选中也就无法改变,但若用键盘呢,当光标移到select控件上,击向下箭头键,其可选项就可以改变了!
怎么办?
针对带输入控件的界面,我们一般会以回车键代替TAB键,
//回车代替Tab键
function transTabKey(){
if (window.event.keyCode == 13 && event.srcElement.type!='textarea' )//&& event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!=''
window.event.keyCode = 9;
}
于是就有<body onkeydown="transTabKey();">
同样我们可乘此东风把<s:select>键盘事件加以屏蔽,也就是在其onkeydown事件把其他键转为回车,由于回车后可顺利进入下一个控件,从而实现用键盘选取亦不可能。
参见:
<span onmousemove="this.setCapture();" onmouseout="this.releaseCapture();" onfocus="this.blur();">
<s:select key="DmsDocument.docZtSpec" name="editEntity.docZtSpec" list="#request['map'].docZtSpec" listKey="code" listValue="name" emptyOption="true"
onkeydown="javascript:if (window.event.keyCode != 13) window.event.keyCode = 13;" >
</s:select>
</span>
相关文章推荐
- struts2中如何使s:select标签只读
- struts2中如何使s:select标签只读
- struts2中如何使s:select标签只读
- Struts2中的select标签
- 关于struts2 select标签默认样式的修改
- struts2中s:select标签的使用
- struts2中s:select标签的使用
- Freemarker中访问Struts2的select标签的问题以及解决办法
- Struts2标签-checkbox只读属性设置
- struts2 中select标签的用法 总结《网上汇编的》
- struts2中s:select标签的使用
- [转]struts2中s:select标签的使用
- struts2的select标签用法实例分析
- struts2 s:select 标签
- struts2标签radio和select中listKey与listValue
- struts2——s:select标签!!!
- struts2中s:select标签的使用
- struts2中s:select标签的使用
- struts2中s:select标签的使用
- 用struts2标签动态生成下拉选择框,比s:select更灵活的方式