求正规的中文日历控件,jsf用,谢谢!
rt
[解决办法]
apache myfaces 里面有inputDate
[解决办法]
jscalendar-1.0~
[解决办法]
<%@ taglib uri= "http://myfaces.apache.org/tomahawk " prefix= "t "%>
使用上面的标签库
你需要下载apache myfaces上的tomahawk.jar文件。里面有一个 <t:inputCalendar> 标签用它就可以了,当然tomahawk里面还有其它一些相关的标签,具体用法你可以自己去看看。我现在就用的是这个,感觉不错,呵呵
[解决办法]
<HTML>
<HEAD>
<TITLE> 请选择日期和时间 </TITLE>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<script>
function outAll(){
//var pathStr = window.location.href;
//var fieldName = pathStr.substring(pathStr.indexOf( "?field= ")+7,pathStr.length);
//var obj = opener.document.getElementById(fieldName);
//obj.value = c.getDate() + ' '+ m.getTime();
var tempTime=c.getDate();
//alert(dialogArguments.maxLength);
if(tempTime.substring(6,7)== "- ")
{
tempTime = tempTime.substring(0,5) + "0 " + tempTime.substring(5,10)
}//alert(tempTime.substring(9,10));
if(tempTime.substring(9,10)== " ")
{
tempTime = tempTime.substring(0,8) + "0 " + tempTime.substring(8,9)
}
dialogArguments.value=tempTime.substring(0,10);
window.close()
}
</script>
</HEAD>
<BODY>
<style type= "text/css ">
body {
background-color: #eeeeee;
}
.m_fieldset {
padding: 0,10,5,10;text-align: center;width: 150px;
}
.m_legend {
font-family: Tahoma;font-size: 11px;padding-bottom: 5px;
}
.m_frameborder {
border-left: 2px inset #D4D0C8;border-top: 2px inset #D4D0C8;
border-right: 2px inset #FFFFFF;border-bottom: 2px inset #FFFFFF;
width: 100px;height: 19px;background-color: #FFFFFF;
overflow: hidden;text-align: right;font-family: "Tahoma ";font-size: 10px;
}
.m_arrow {
width: 16px;height: 8px;font-family: "Webdings ";font-size: 7px;
line-height: 2px;padding-left: 2px;cursor: default;
}
.m_input {
width: 18px;height: 14px;border: 0px solid black;font-family: "Tahoma ";
font-size: 9px;text-align: right;ime-mode:disabled;
}
.c_fieldset {
padding: 0,10,5,10;text-align: center;width: 180px;
}
.c_legend {
font-family: Tahoma;font-size: 11px;padding-bottom: 5px;
}
.c_frameborder {
border-left: 2px inset #D4D0C8;border-top: 2px inset #D4D0C8;
border-right: 2px inset #FFFFFF;border-bottom: 2px inset #FFFFFF;
background-color: #FFFFFF;overflow: hidden;font-family: "Tahoma ";
font-size: 10px;width:160px;height:120px;
}
.c_frameborder td {
width: 23px;height: 16px;font-family: "Tahoma ";
font-size: 11px;text-align: center;cursor: default;
}
.c_frameborder .selected {
background-color:#0A246A;width:12px;height:12px;color:white;
}
.c_frameborder span {
width:12px;height:12px;
}
.c_arrow {
width: 16px;height: 8px;font-family: "Webdings ";font-size: 7px;
line-height: 2px;padding-left: 2px;cursor: default;
}
.c_year {
font-family: "Tahoma ";font-size: 11px;cursor: default;width:55px;height:19px;
}
.c_month {
width:75px;height:20px;font:11px "Tahoma ";
}
.c_dateHead {
background-color:#808080;color:#D4D0C8;
}
</style>
<script language= "javascript ">
//Written by cloudchen, 2004/03/15
[解决办法]
function minute(name,fName){
this.name = name;
this.fName = fName || "m_input ";
this.timer = null;
this.fObj = null;
this.toString = function(){
var objDate = new Date();
var sMinute_Common = "class=\ "m_input\ " maxlength=\ "2\ " name=\ " "+this.fName+ "\ " onfocus=\ " "+this.name+ ".setFocusObj(this)\ " onblur=\ " "+this.name+ ".setTime(this)\ " onkeyup=\ " "+this.name+ ".prevent(this)\ " onkeypress=\ "if (!/[0-9]/.test(String.fromCharCode(event.keyCode)))event.keyCode=0\ " onpaste=\ "return false\ " ondragenter=\ "return false\ " ";
var sButton_Common = "class=\ "m_arrow\ " onfocus=\ "this.blur()\ " onmouseup=\ " "+this.name+ ".controlTime()\ " disabled "
var str = " ";
str += " <table border=\ "0\ " cellspacing=\ "0\ " cellpadding=\ "0\ "> "
str += " <tr> <td> "
str += " <div class=\ "m_frameborder\ "> "
str += " <input radix=\ "24\ " value=\ " "+this.formatTime(objDate.getHours())+ "\ " "+sMinute_Common+ "> : "
str += " <input radix=\ "60\ " value=\ " "+this.formatTime(objDate.getMinutes())+ "\ " "+sMinute_Common+ "> : "
str += " <input radix=\ "60\ " value=\ " "+this.formatTime(objDate.getSeconds())+ "\ " "+sMinute_Common+ "> "
str += " </div> </td> "
str += " <td> "
str += " <table border=\ "0\ " cellspacing=\ "2\ " cellpadding=\ "0\ "> "
str += " <tr> <td> <button id=\ " "+this.fName+ "_up\ " "+sButton_Common+ "> 5 </button> </td> </tr> "
str += " <tr> <td> <button id=\ " "+this.fName+ "_down\ " "+sButton_Common+ "> 6 </button> </td> </tr> "
str += " </table> "
str += " </td> </tr> </table> "
return str;
}
this.play = function(){
this.timer = setInterval(this.name+ ".playback() ",1000);
}
this.formatTime = function(sTime){
sTime = ( "0 "+sTime);
return sTime.substr(sTime.length-2);
}
this.playback = function(){
var objDate = new Date();
var arrDate = [objDate.getHours(),objDate.getMinutes(),objDate.getSeconds()];
var objMinute = document.getElementsByName(this.fName);
for (var i=0;i <objMinute.length;i++){
objMinute[i].value = this.formatTime(arrDate[i])
}
}
this.prevent = function(obj){
clearInterval(this.timer);
this.setFocusObj(obj);
var value = parseInt(obj.value,10);
var radix = parseInt(obj.radix,10)-1;
if (obj.value> radix||obj.value <0){
obj.value = obj.value.substr(0,1);
}
}
this.controlTime = function(cmd){
event.cancelBubble = true;
if (!this.fObj) return;
clearInterval(this.timer);
var cmd = event.srcElement.innerText== "5 "?true:false;
var i = parseInt(this.fObj.value,10);
var radix = parseInt(this.fObj.radix,10)-1;
if (i==radix&&cmd){
i = 0;
}else if (i==0&&!cmd){
i = radix;
}else{
cmd?i++:i--;
}
this.fObj.value = this.formatTime(i);
this.fObj.select();
}
this.setTime = function(obj){
obj.value = this.formatTime(obj.value);
}
this.setFocusObj = function(obj){
eval(this.fName+ "_up ").disabled = eval(this.fName+ "_down ").disabled = false;
this.fObj = obj;
}
this.getTime = function(){
var arrTime = new Array(2);
for (var i=0;i <document.getElementsByName(this.fName).length;i++){
arrTime[i] = document.getElementsByName(this.fName)[i].value;
}
return arrTime.join( ": ");
}
}
</script>
<script language= "javascript ">
//Written by cloudchen, 2004/03/16
function calendar(name,fName){
this.name = name;
this.fName = fName || "calendar ";
this.year = new Date().getFullYear();
this.month = new Date().getMonth();
this.date = new Date().getDate();
//private
this.toString = function(){
var str = " ";
str += " <table border=\ "0\ " cellspacing=\ "3\ " cellpadding=\ "0\ " onselectstart=\ "return false\ "> ";
str += " <tr> ";
str += " <td align=\ "right\ "> ";
str += this.drawYear();
str += " </td> ";
str += " <td> ";
str += this.drawMonth();
str += " </td> ";
str += " </tr> ";
str += " <tr> <td colspan=\ "2\ "> ";
str += " <div class=\ "c_frameborder\ "> ";
str += " <table border=\ "0\ " cellspacing=\ "0\ " cellpadding=\ "0\ " class=\ "c_dateHead\ "> ";
str += " <tr> ";
str += " <td> 日 </td> <td> 一 </td> <td> 二 </td> <td> 三 </td> <td> 四 </td> <td> 五 </td> <td> 六 </td> ";
str += " </tr> </table> ";
str += this.drawDate();
str += " </div> </td> </tr> </table> ";
return str;
}
//private
this.drawYear = function(){
var str = " ";
str += " <table border=\ "0\ " cellspacing=\ "0\ " cellpadding=\ "0\ "> ";
str += " <tr> <td> ";
str += " <input class=\ "c_year\ " maxlength=\ "4\ " value=\ " "+this.year+ "\ " name=\ " "+this.fName+ "\ " id=\ " "+this.fName+ "_year\ " readonly> ";
//DateField
str += " <input type=\ "hidden\ " name=\ " "+this.fName+ "\ " value=\ " "+this.date+ "\ " id=\ " "+this.fName+ "_date\ "> ";
str += " </td> ";
str += " <td> ";
str += " <table cellspacing=\ "2\ " cellpadding=\ "0\ " border=\ "0\ "> ";
str += " <tr> ";
str += " <td> <button class=\ "c_arrow\ " onfocus=\ "this.blur()\ " onclick=\ "event.cancelBubble=true;document.getElementById( ' "+this.fName+ "_year ').value++; "+this.name+ ".redrawDate()\ "> 5 </button> </td> ";
str += " </tr> ";
str += " <tr> ";
str += " <td> <button class=\ "c_arrow\ " onfocus=\ "this.blur()\ " onclick=\ "event.cancelBubble=true;document.getElementById( ' "+this.fName+ "_year ').value--; "+this.name+ ".redrawDate()\ "> 6 </button> </td> ";
str += " </tr> ";
str += " </table> ";
str += " </td> </tr> </table> ";
return str;
}
//priavate
this.drawMonth = function(){
var aMonthName = [ "一月份 ", "二月份 ", "三月份 ", "四月份 ", "五月份 ", "六月份 ", "七月份 ", "八月份 ", "九月份 ", "十月份 ", "十一月份 ", "十二月份 "];
var str = " ";
str += " <select class=\ "c_month\ " name=\ " "+this.fName+ "\ " id=\ " "+this.fName+ "_month\ " onchange=\ " "+this.name+ ".redrawDate()\ "> ";
for (var i=0;i <aMonthName.length;i++) {
str += " <option value=\ " "+(i+1)+ "\ " "+(i==this.month? "selected ": " ")+ "> "+aMonthName[i]+ " </option> ";
}
str += " </select> ";
return str;
}
//private
this.drawDate = function(){
var str = " ";
var fDay = new Date(this.year,this.month,1).getDay();
var fDate = 1-fDay;
var lDay = new Date(this.year,this.month+1,0).getDay();
var lDate = new Date(this.year,this.month+1,0).getDate();
str += " <table border=\ "0\ " cellspacing=\ "0\ " cellpadding=\ "0\ " id=\ " "+this.fName+ "_dateTable "+ "\ "> ";
for (var i=1,j=fDate;i <7;i++){
str += " <tr> ";
for (var k=0;k <7;k++){
str += " <td > <span "+(j==this.date? " class=\ "selected\ " ": " ")+ " onclick=\ " "+this.name+ ".redrawDate(this.innerText)\ " > "+(isDate(j++))+ " </span> </td> ";
}
str += " </tr> ";
}
str += " </table> ";
return str;
function isDate(n){
return (n> =1&&n <=lDate)?n: " ";
}
}
//public
this.redrawDate = function(d){
this.year = document.getElementById(this.fName+ "_year ").value;
this.month = document.getElementById(this.fName+ "_month ").value-1;
this.date = d || this.date;
document.getElementById(this.fName+ "_year ").value = this.year;
document.getElementById(this.fName+ "_month ").selectedIndex = this.month;
document.getElementById(this.fName+ "_date ").value = this.date;
if (this.date> new Date(this.year,this.month+1,0).getDate()) this.date = new Date(this.year,this.month+1,0).getDate();
document.getElementById(this.fName+ "_dateTable ").outerHTML = this.drawDate();
}
//public
this.getDate = function(delimiter){
if (!delimiter) delimiter = "- ";
var aValue = [this.year,(this.month+1),this.date];
return aValue.join(delimiter);
}
}
</script>
<table border= "0 ">
<tr> <td >
<fieldset class= "c_fieldset "> <legend class= "c_legend "> 选取日期(T) </legend>
<!-- ?÷?????ú -->
<script>
var c = new calendar( "c ");
document.write(c);
</script>
<!-- ?÷?????ú -->
</fieldset>
</td>
<td colspan= "1 ">
<button onclick= "outAll() " style= "font:8px Webdings;width:15px;height:15px;line-height:6px; "> 4 </button>
<button onclick= "outAll() " style= "font:10px Arial;height:15px;height:16px;border:0px; " onfocus= "this.blur() "> 获取日期时间 </button>
</td>
</tr>
</table>
</BODY>
</HTML>
[解决办法]
楼主可以参考一个这个
http://blog.csdn.net/21aspnet/archive/2007/05/14/1607712.aspx
[解决办法]
apache myfacse 的tomahawk组件库,有这个功能,DEMO里有 . <t:inputDate/>
[解决办法]
JSF里自带日期控件啊
[解决办法]
你要把你的tomahawk.jar文件拷贝lib目录下,上面的错误是找不到过滤器的类呀。
[解决办法]
用jscalendar-1.0,两个js文件就够了~
没必要这么麻烦吧~