懂javascript或者jquery的进来

如何做到在一个文本框中输入一个时间,例如30当鼠标离开时就转换成00:30输入68就变成01:08,当用户输入别的字符串的时候就弹出一个消息框您输入的时间不正确,用户也可... 如何做到在一个文本框中输入一个时间,例如30当鼠标离开时就转换成00:30输入68就变成
01:08,当用户输入别的字符串的时候就弹出一个消息框您输入的时间不正确,用户也可以按小时输入 例如 02:08这样也不报错,如果输入03:115这样就会提示用户输入错误,当用户输入3:08时自动转变成03:08
展开
 我来答
YugOppop6QSJ0
2012-03-05 · TA获得超过425个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:202万
展开全部
<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>
追问
当我输入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进制了 呵呵
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式