懂javascript或者jquery的进来
如何做到在一个文本框中输入一个时间,例如30当鼠标离开时就转换成00:30输入68就变成01:08,当用户输入别的字符串的时候就弹出一个消息框您输入的时间不正确,用户也可...
如何做到在一个文本框中输入一个时间,例如30当鼠标离开时就转换成00:30输入68就变成
01:08,当用户输入别的字符串的时候就弹出一个消息框您输入的时间不正确,用户也可以按小时输入 例如 02:08这样也不报错,如果输入03:115这样就会提示用户输入错误,当用户输入3:08时自动转变成03:08 展开
01:08,当用户输入别的字符串的时候就弹出一个消息框您输入的时间不正确,用户也可以按小时输入 例如 02:08这样也不报错,如果输入03:115这样就会提示用户输入错误,当用户输入3:08时自动转变成03:08 展开
1个回答
展开全部
<body>
<input type="text" onblur="c(this);"/>
</body>
<script type="text/javascript">
function c(ele){
var val=ele.value;
if(/^[0-9]+$/.test(val)){
val=Number(val);
var hh=Math.floor(val/60);
if(hh>24){
alert('Error 1');
return;
}
hh<10&&(hh='0'+hh);
var mi=parseInt(val%60);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else if(/^(?:[01]?[0-9]|2[0-3]):[0-5]?[0-9]$/.test(val)){
var ar=val.split(':');
var hh=parseInt(ar[0]);
var mi=parseInt(ar[1]);
hh<10&&(hh='0'+hh);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else{
alert('Error 2');
}
}
</script>
<input type="text" onblur="c(this);"/>
</body>
<script type="text/javascript">
function c(ele){
var val=ele.value;
if(/^[0-9]+$/.test(val)){
val=Number(val);
var hh=Math.floor(val/60);
if(hh>24){
alert('Error 1');
return;
}
hh<10&&(hh='0'+hh);
var mi=parseInt(val%60);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else if(/^(?:[01]?[0-9]|2[0-3]):[0-5]?[0-9]$/.test(val)){
var ar=val.split(':');
var hh=parseInt(ar[0]);
var mi=parseInt(ar[1]);
hh<10&&(hh='0'+hh);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else{
alert('Error 2');
}
}
</script>
追问
当我输入06:08的时候变成了06:00如何解决这个bug,你这个例子太好了。。
追答
function c(ele){
var val=ele.value;
if(/^[0-9]+$/.test(val)){
val=Number(val);
var hh=Math.floor(val/60);
if(hh>24){
alert('Error 1');
return;
}
hh<10&&(hh='0'+hh);
var mi=parseInt(val%60,10);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else if(/^(?:[01]?[0-9]|2[0-3]):[0-5]?[0-9]$/.test(val)){
var ar=val.split(':');
var hh=parseInt(ar[0],10);
var mi=parseInt(ar[1],10);
hh<10&&(hh='0'+hh);
mi<10&&(mi='0'+mi);
ele.value=hh+':'+mi;
}else{
alert('Error 2');
}
}
对了 parseInt(n)是自动判断基数的 如果是08的 他会认为是 8进制!!!
这回统一改为 10进制了 呵呵
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询