JSFiddle - React, Tailwind, and code Playground
by dtdxrk
HTML
<table>
<tr>
<th>距离(km)</td>
<th>%</td>
<th>时间</td>
<th>=</td>
<th>速度(km/h)</td>
</tr>
<tr>
<td><input type="text" class="text" id="Distance" /></td>
<td>%</td>
<td><input type="text" class="text" id="Hour" />小时 <input type="text" class="text" id="Minute" />分</td>
<td><input type="button" value="计算速度" id="Calculator" /></td>
<td><strong id="Result">结果</strong></td>
</tr>
</table>
CSS
* {margin:0;padding:0; font-family: Arial, Helvetica, sans-serif;}
table { width:600px; margin:100px auto;font-size:12px; text-align:center;}
table th{ padding:10px;font-size:14px; font-weight:bold;background-color:#e9eef2;}
table td{ padding:10px;}
table, table th, table td{ border-collapse:collapse; border:1px solid #ccc;}
input.text{ width:30px; font-size:14px; padding:1px 2px;}
input#Calculator{ padding:5px; }
strong#Result{ font-size:14px; color:red;}
JavaScript
var Calculator = document.getElementById("Calculator"),
Distance = document.getElementById("Distance"),
Hour = document.getElementById("Hour"),
Minute = document.getElementById("Minute"),
Result = document.getElementById("Result");
function noNumbers(e){ //只能键入数字
var keynum,
keychar,
numcheck;
if(window.event){ // IE
keynum = e.keyCode
} else if(e.which){// Netscape/Firefox/Opera
keynum = e.which
}
keychar = String.fromCharCode(keynum);
numcheck = /[^\d]/;
return !numcheck.test(keychar);
}
Distance.onkeypress = function(){
return noNumbers(event)
}
Hour.onkeypress = function(){
return noNumbers(event)
}
Minute.onkeypress = function(){
return noNumbers(event)
}
//onpaste "return false" 的目的是禁用鼠标右键的“粘贴”菜单,可以防止鼠标右键或者Ctrl + V粘贴不合法的数据。
Distance.onpaste = function(){
return false;
}
Hour.onpaste = function(){
return false;
}
Minute.onpaste = function(){
return false;
}
Calculator.onclick = function(){
var Time = Number(Hour.value) + Number(parseInt(Minute.value/60)+(Minute.value%60/60)), //转换时间
Speed = (Distance.value/Time).toFixed(2); //只取到小数点后两位
if (Distance.value == "" || Hour.value == "" && Minute.value == ""){
Result.innerHTML = "结果";
alert ("距离和时间不能为空!");
} else if(Speed == "NaN") {
alert ("距离或时间格式不正确!");
} else {
Result.innerHTML = Speed + " km/h";
}
}