From dbc7e0fe7c445f27cfc8ed2df639101a61aee973 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 10:36:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=AD=97=E8=BE=93=E5=85=A5=E6=A1=86?= =?UTF-8?q?=E5=8F=AA=E4=BF=9D=E7=95=992=E4=BD=8D=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/assets/js/project_budget_plan.js | 6 +++- .../static/assets/js/project_common.js | 36 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main/resources/static/assets/js/project_budget_plan.js b/src/main/resources/static/assets/js/project_budget_plan.js index 7fa339a..99f05ea 100644 --- a/src/main/resources/static/assets/js/project_budget_plan.js +++ b/src/main/resources/static/assets/js/project_budget_plan.js @@ -37,6 +37,8 @@ $(function () { bindCompanyManageChangeable(); //渲染日期选择框 renderMonthDatePicker(); + //绑定数字输入框保留两位小数 + bindNumberInput(); }); /** @@ -111,7 +113,9 @@ function appendTrBudgetPlan() { //绑定资金计划明细输入框 bindChangeableInputBudgetPlanDetail(); //渲染日期选择框 - renderMonthDatePicker() + renderMonthDatePicker(); + //绑定数字输入框保留两位小数 + bindNumberInput(); } /** diff --git a/src/main/resources/static/assets/js/project_common.js b/src/main/resources/static/assets/js/project_common.js index bbe8ff2..a8572f9 100644 --- a/src/main/resources/static/assets/js/project_common.js +++ b/src/main/resources/static/assets/js/project_common.js @@ -30,6 +30,42 @@ function rate(r1,r2) { return f2(r1*100/r2); } + +/** + * 保留两位小数 + */ +function bindNumberInput() { + //所有的数字输入框 + var $inputs = $("input[type='number']"); + + //键盘键弹起的时候 + $inputs.keyup(function () { + var value = $(this).val(); + value = value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 + value = value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的 + value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); + value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数 + if (value.indexOf(".") < 0 && value != "") { + //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 + value = parseFloat(value); + } + $(this).val(value); + }); + //失去焦点时再校验一遍 + $inputs.blur(function() { + + var value = $(this).val(); + + var reg = new RegExp("^[0-9]+(.[0-9]{2})?$"); + if (reg.test(value)) { + $(this).val(Number(value).toFixed(2)); + } else { + $(this).val(""); + } + }); +} + + function postAjax(url, data, callback) { $.ajax({ url: url,