会计网站文本框经常用到的一些功能

本文介绍了一段JavaScript代码,用于实现输入框内的数值输入限制及自动格式化功能,包括阻止非法字符粘贴、限定按键输入类型,并在失去焦点时自动添加千分位分隔符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript代码:

        /*
            keyCode
            ascII码说明:
            8:backspace键
            46:delete键
            37-40:方向键
            48-57:小键盘区的数字
            96-105:主键盘区的数字
            110、190:小键盘区和主键盘区的小数点
            189、109:小键盘区和主键盘区的负号

            13:回车
            9:Tab键
        */
        function donotpaste() {
            var txt = clipboardData.getData('Text');
            if (parseFloat(txt) != txt) {
                alert("不合法");
                return false;
            }
        }

        function numonkeydown() {
            var k = window.event.keyCode;
            if ((k == 13) || (k == 9) || (k == 8) || (k == 46) || (k == 189) || (k == 109) || (k == 110) || (k == 190) || (k >= 37 && k <= 40) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105)) {
                return true;
            }
            else {
                return false;
            }
        }

        function compafy(n) {//自动添加千分位,断言以3位数字结尾,选择前面的1到3位数字为一组
            var re = /\d{1,3}(?=(\d{3})+$)/g;
            var n1 = n.replace(/^(\d+)((\.\d+)?)$/, function (s, s1, s2) { return s1.replace(re, "$&,") + s2; }); //s全部字符串,s1整数部分,s2小数点部分,
$&表示匹配的子字符串即3位结尾数字前面的1到3位数字
return n1; }

网页内容:

<body onkeydown="if(window.event.keyCode==13){window.event.keyCode=9;}">
    <!--回车的keyCode为13,Tab键的keyCode为9-->
    金额:<input type="text" style="ime-mode: disabled" onkeydown="return numonkeydown()" onpaste="return donotpaste()" onblur="this.style.textAlign='right';this.value=compafy(this.value)" onfocus="this.style.textAlign='left';this.value=this.value.replace(/,/g,'');" />
    合计:<input type="text" />
</body>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值