读书人

怎么让Struts2中datetimepicker 标签的

发布时间: 2012-09-19 13:43:54 作者: rapoo

如何让Struts2中datetimepicker 标签的输入框不可输入
在用strust2做项目时遇到一个问题,我用struts2中datetimepicker 标签时只想让用户用后面的选择按钮来选择日期,
而不想让用户输入,因为用户的输入很可能不符合日期格式的要求。
于是我就在<s: datetimepicker >标签中加入了disabled=“true",但是我发现这个设置根本不起作用。
我开始到网上去找这方面的资料,我发现遇到这个问题的人还真不少,但是都没有找到好的解决方案。
于是我开始自己琢磨这这个问题,经过很多次的实验我发现,<s: datetimepicker >控件其实是一个DIV,
第一个子元素是一个隐藏域的表单,
第二个就是我们看见的文本输入框.
日期控件的如下:
<s:datetimepicker name="starttime" id="starttime" displayFormat="yyyy-MM-dd"></s:datetimepicker> 我们想要做的就是让第二个子元素的disabled="true",所以我们可以这么做:
然后写javascript,代码如下:
document.getElementById("starttime").childNodes(1).disabled="true";其中childNodes(1)代表是第二个子元素,也就是我们不想让用户输入的文本框。
目的达到。
但是这又遇到了另外一个问题设置成disabled的时候,Action中获取不到页面中相应的值.
用如下方式:
document.getElementById("startTimeId").childNodes(1).setAttribute("readOnly","true");
或document.getElementById("starttime").childNodes(1).readOnly="true"; //注意readOnly中o大写
就能获取值了.

我又尝试隐藏选择按钮图片:
document.getElementById("startTimeId").childNodes(2)获取第三个元素的时候发现是空格(狂晕).
document.getElementById("startTimeId").childNodes(3)才是那个图片!
document.getElementById("startTimeId").childNodes(3).style.display = "none"; //删掉图片原来所占的位置
document.getElementById("startTimeId").childNodes(3).style.visibility = "hidden"; //保留图片位置.
一切ok!


转自:http://www.blogjava.net/lameer/articles/315048.html

读书人网 >软件架构设计

热点推荐