用日期控件,这个网上很多得,这个text.readonly = true,不可以吗
解决方案 »
- javascript 怎样得到 input 中的 onmouseover 中的值?
- 请高手指点一个验证数字前6位为310100,总位数为12位的代码!很急很急的,在线等!
- 有关js的正则替换问题,替换字符串中间的几位
- 为何这样不能获得原型的方法。
- 关于验证输入内容的问题
- 请教如何实现table中background的变幻
- 欺骗file后不能保存图片
- 我要让点击一个table,就链结到别的地方去.该如何实现呢?<div> 和<a>好像都不行:(
- 在Popup对象中,好像CSS不能使用,请帮忙解决一下!
- 解密一个js代码100分
- 网址的正则表达式怎么写在JS里面啊
- 一个JAVASCRIPT做的扫雷游戏
var reg = /^(19|20)\d\d\-(0|1)\d\-(0|1|2|3)\d$/;
if(!reg.test(obj.value)){
alert("请输入正确的日期格式。");
obj.focus();
obj.select();
}
}
如果还要检测输入的日期是否合法再加上下面这个函数的判断
/*
* 检测日期中的月和日的正确性
* 日期格式如:2004/05/04
*/
function datecheck(val){
var mydate = val.split("/");
var year = mydate[0]%4;//取得是否为润年
var month = mydate[1];//取得日期中的月份
var day = mydate[2];//取得日期中的日
if(month>12 || month == 0 || day == 0)
{return false;}
if(month==4||month==6||month==9||month==11){
if(day>30)
return false;
else
return true;
}
else if(month==2)
{
if(year==0&&day>29) //润月天数
return false;
else if(year!=0&&day>28)
return false;
else
return true;
}
else{
if(day>31)
return false;
else
return true;
}
}
String.prototype.isDate = function()
{
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
</script><input type=text maxLength=10 size=20 name=news_date
onblur="if(this.value!=''&&!this.value.isDate()){alert('wrong'); this.focus()}">
我只是一个coding的小妹
function DTcheck(Txt){
var st=Txt.value;
var validDT=false;
var stYear;
var stMonth;
var stDate;
var intMonth;
var reg1=/^\d{6}$/;
var reg2=/^\d{8}$/;
var reg3=/^\d{4}\/[0-9]{2}\/\d{2}$/;
var reg4=/^\d{2}\/[0-9]{2}\/\d{2}$/;
if (st=='') return;
if (reg1.test(st) || reg2.test(st) || reg3.test(st) || reg4.test(st)) {
if (st.length==10) { // 'yyyy/mm/dd' Format
stYear=st.substring(0,4);
stMonth=st.substring(5,7);
stDate=st.substring(8,10);
}
if (st.length==8) {
if (st.substring(2,3)=='/'){ // 'yy/mm/dd' Format
stYear="20"+st.substring(0,2);
stMonth=st.substring(3,5);
stDate=st.substring(6,8);
}
else { // 'yyyymmdd'
stYear=st.substring(0,4);
stMonth=st.substring(4,6);
stDate=st.substring(6,8);
}
}
if (st.length==6) {
stYear=st.substring(0,2);
if (st.substring(0,2)>='90') stYear='19'+st.substring(0,2);
else stYear='20'+st.substring(0,2);
stMonth=st.substring(2,4);
stDate=st.substring(4,6);
} //***加此段的原因是:parseInt("08") 或 09 返不回8或9.而1~7,10~12沒問題,只能先截去0後,用parseInt("8")返回8
if (stMonth.substring(0,1)=='0')
intMonth=parseInt(stMonth.substring(1,2));
else
intMonth=parseInt(stMonth);
//*** switch(intMonth) {
case 1:
if (stDate<='31') validDT=true;
break;
case 2:
if (parseInt(stYear) % 4 ==0) { //閏年
if (stDate<='29') validDT=true;
}
else{
if (stDate<='28') validDT=true;
}
break;
case 3:
if (stDate<='31') validDT=true;
break;
case 4:
if (stDate<='30') validDT=true;
break;
case 5:
if (stDate<='31') validDT=true;
break;
case 6:
if (stDate<='30') validDT=true;
break;
case 7:
if (stDate<='31') validDT=true;
break;
case 8:
if (stDate<='31') validDT=true;
break;
case 9:
if (stDate<='30') validDT=true;
break;
case 10:
if (stDate<='31') validDT=true;
break;
case 11:
if (stDate<='30') validDT=true;
break;
case 12:
if (stDate<='31') validDT=true;
break;
default:
break;
}
if (validDT==true){
Txt.value=stYear + '/' + stMonth + "/" + stDate;
return;
}
else{
alert("錯誤的年月日輸入:[" + stYear + "年] [" + stMonth + "月] [" + stDate + "日]");
Txt.focus();
return;
}
} //match pattern
else //no match pattern
{
alert("錯誤的日期格式輸入\n正確格式:yyyymmdd 或 yymmdd 或 yyyy/mm/dd 或 yy/mm/dd \n含意:y:年份 m:月份 d:日");
Txt.focus();
}
}
<!--
function isDate(str){
var days= new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
var a = str.match(/^(\d{0,4})(\/)(\d{2})(\/)(\d{2})$/);
if (a == null) return false;
days[1]=((0 == a[1] % 4) && (0 != (a[1] % 100))) || (0 == a[1] % 400) ? 29 : 28;
if (a[1]<=1900 || a[3]>=13 || a[5]>days[a[3]-1]) return false;
return true;
}
alert(isDate("2003/12/20"))
-->
</script>
<!--
function isDate(str){
var days= new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
var a = str.match(/^(\d{4})(\/)(\d{2})(\/)(\d{2})$/);
if (a == null) return false;
days[1]=((0 == a[1] % 4) && (0 != (a[1] % 100))) || (0 == a[1] % 400) ? 29 : 28;
if (a[1]<=1900 || a[3]==0 || a[3]>=13 || a[5]==0 || a[5]>days[a[3]-1]) return false;
return true;
}
-->
</script>
<input type=text onblur="if(!isDate(this.value)){alert('日期格式错误(YYYY/MM/DD)');this.value='';this.focus();}">
var r;
execScript("r=isDate(s)","VBScript");
alert(r);
强人!这个办法好!!!!
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function keydown(src){
var e=window.event;
var code=e.keyCode;
var cursorPos=getPos(src);
if(code==8){ //退格
if(cursorPos==5 || cursorPos==8|| cursorPos==11 || cursorPos==14){
movenext(src,cursorPos,-1);
cursorPos-=1;
}else movenext(src,cursorPos,0);
//alert();
var range=setSelect(src,cursorPos-1);
range.text="0";
movenext(src,cursorPos,-1);
e.returnValue=false;
//src.focus();
return false;
}else if(code==46) e.returnValue=false;
}
function keypress(src){
var e=window.event;
var code=e.keyCode;
var cursorPos=getPos(src);
if(!keyPressInt()) return false;
if(cursorPos==4 || cursorPos==7|| cursorPos==10 || cursorPos==13){
movenext(src,cursorPos,1);
cursorPos += 1;
}
var num = String.fromCharCode(code);
//alert(num);
if(checkInput(src,num,cursorPos)){
var range=setSelect(src,cursorPos);
range.text=num;
if(cursorPos==3 || cursorPos==6|| cursorPos==9 || cursorPos==12)
movenext(src,cursorPos,2);
else movenext(src,cursorPos,1);
}
e.returnValue=false;
return false;
}
function checkInput(src,num,pos){
var val=src.value;
var year=parseInt(val.substring(0,4),10);
var month=parseInt(val.substring(5,7),10);
output.value+="num="+num+" pos="+pos+" val="+val + " year="+year+" month="+month;
output.value+="\r\n";
switch(pos){
case 0: if(num!=1 && num!=2) return false; break;
case 5: if(num>1) return false;break;
case 6: if(val.charAt(5)=="1" && num>2 || val.charAt(5)=="0" && num==0)
return false;break;
case 8: switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
case 4: case 6: case 9: case 11:
if(num>3) return false;break;
case 2: if(num>2) return false;break;
}break;
case 9: var char8=val.charAt(8); switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if(char8==0 && num==0 || char8==3 && num>1) return false;
case 4: case 6: case 9: case 11:
if(char8==0 && num==0 || char8==3 && num!=0) return false;
case 2: if(char8==0 && num==0) return false;
else if(char8==2 && !(year%4==0 && year %400==0) && num>8) return false;
}break;
case 11: if(num>2) return false;break;
case 12: if(parseInt(val.charAt(11)+num)>23) return false;break;
case 14: if(num>5) return false;break;
}
output.value+="return true;"; output.value+="\r\n";
return true;
}
function setSelect(src,pos){
var range = src.createTextRange();
range.moveStart('character',pos);
range.moveEnd('character',pos-src.value.length+1);
range.select();
return range;
}
function getPos(obj){
var ml=obj.value.length;
var pos=0;
var rng=document.selection.createRange();
rng.moveEnd("character",ml);
try{
pos=ml-rng.text.length
}catch(e){}
return pos;
}
function movenext(src,pos,flag)
{
var range =src.createTextRange();
range.moveStart("character",pos+flag);
range.collapse(true);
range.select();
}
function keyPressInt(){
var e=window.event;
code=e.keyCode;
if(code >=48 && code <=57) return true;
else {window.event.returnValue=false;return false;}
}
function checkPaste(){
window.event.returnValue=false;
}
function initDate(){
var date=new Date();
var year=date.getFullYear();
var month=date.getMonth()+1;
var day=date.getDate();
var hour=date.getHours();
var minu=date.getMinutes();
month=month<10?"0"+month:month;
day=day<10?"0"+day:day;
hour=hour<10?"0"+hour:hour;
minu=minu<10?"0"+minu:minu;
document.all.dateinput.value=year+"-"+month+"-"+day+" "+hour+":"+minu;
movenext(document.all.dateinput,0,0);
}</script>
</head><body onload="initDate()">
<p align=center>
<input name="dateinput" value="0000-00-00 00:00" onkeydown="keydown(this)" size="16" maxlength="16" type="text" onFocus="" onkeypress="keypress(this)" onpaste="checkPaste()" onDrag="checkPaste()" oncut="checkPaste()" onmousemove="checkPaste()">
</p>
<p><input type="button" value="clear" onclick="javascript:output.innerText='';">
<textarea id="output" width="800" height="600" rows="30" cols="100"></textarea>
</P>
<script language="JavaScript">
<!--
dateinput.focus();
//-->
</script>
</body>
</html>