input標簽的oninput事件
要求輸入框只輸入正實數,包括整數和小數。
具體要求:整數部分不超過7位,可以沒有小數,若有位數不超過2位。
<input type="text" id="myId" value="0" style="width: 100px;" oninput="InputOnchange(this.id);" /> <script> function InputOnchange(thisId) { //驗證數據 var valueCurrent = document.getElementById(thisId).value; var value = valueCurrent; //不是數字 if (/[^\d]/.test(valueCurrent)) { //含小數點 if (valueCurrent.indexOf(".") != -1) { var valueArray = valueCurrent.split("."); //小數點不能首位 if (valueCurrent.indexOf(".") == 0) { value = ''; } //小數點只有一個 else if (valueArray.length > 2) { value = valueCurrent.substring(0, valueCurrent.length - 1); } //小數位數為2,且是數字 else if (valueArray[1].length > 2) { valueArray[1] = valueArray[1].substring(0, 2);//valueArray[1].length - 1 if (/[^\d]/.test(valueArray[1])) { valueArray[1] = valueArray[1].replace(/[^\d]/g,''); } value = valueArray.join('.'); } //小數部分也只能是數字 else if (/[^\d|\.]/.test(valueCurrent)) { value = valueCurrent.replace(/[^\d|\.]/g, ''); } } else{ value = valueCurrent.replace(/[^\d]/g, ''); } }//開頭不能連續兩個0 else if (valueCurrent.substring(0,1) == "0") { if (valueCurrent.substring(1,2) != ".") { value = "0"; } } //整數位數不超過7位 else if (valueCurrent.length>7) { value = valueCurrent.substring(0,7); } document.getElementById(thisId).value = value; //...省略部分代碼...// } </script>