HTMLthis
<div class="col-md-4"> <div class="form-group has-feedback row"> <div class="col-md-6 orderMsgRight"> <label>預計我方投資金額(萬元):</label> </div> <div class="col-md-6 orderMsgLeft"> <input name="investBudget" autocomplete="off" class="num" placeholder="請保留兩位小數" onkeyup="clearNoNum(this)" type="text" id="investbudget" th:value="${estimated_cost}"> </div> </div> </div>
jsspa
1 //控制只能輸入小數點後2位 2 function clearNoNum(obj) { 3 obj.value = obj.value.replace(/[^\d.]/g, ""); //清除「數字」和「.」之外的字符 4 obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一個. 清除多餘的 5 obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); 6 obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能輸入兩個小數 7 if (obj.value.indexOf(".") < 0 && obj.value != "") { //以上已通過濾,此處控制的是若是沒有小數點,首位不能爲相似於 0一、02的金額 8 obj.value = parseFloat(obj.value); 9 } 10 } 11 //失去焦點時再校驗一遍 12 $(".num").blur(function() { 13 var vl = this.value; 14 var reg = new RegExp("^[0-9]+(.[0-9]{2})?$"); 15 var boo = reg.test(vl); 16 if (boo) { 17 this.value = Number(this.value).toFixed(2); 18 } else { 19 $(this).val(""); 20 } 21 22 });