struts2标签s:select 只读解决方案

      使用struts2的<s:select>标签不具有disabled属性,除非将theme设置为simple才可以使用disabled,那么如果不使用simple的theme还有其他办法使select下拉框只读吗?从网上找到了一个办法,大致的思路就是

不让下拉框获得焦点,见下面的html代码:

 

 <span οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" οnfοcus="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 οnkeydοwn="transTabKey();">

      同样我们可乘此东风把<s:select>键盘事件加以屏蔽,也就是在其onkeydown事件把其他键转为回车,由于回车后可顺利进入下一个控件,从而实现用键盘选取亦不可能。

     参见:

    <span οnmοusemοve="this.setCapture();" οnmοuseοut="this.releaseCapture();" οnfοcus="this.blur();">

                     <s:select key="DmsDocument.docZtSpec"   name="editEntity.docZtSpec"  list="#request['map'].docZtSpec" listKey="code" listValue="name" emptyOption="true"  οnkeydοwn="javascript:if (window.event.keyCode != 13) window.event.keyCode = 13;" >
                      </s:select>   

     </span>


 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值