saki牧师妹 2022-07-04 15:39 采纳率: 66.7%
浏览 44
已结题

原生JS输入框填数字,form提交时自动补齐满n位数

问题遇到的现象和发生背景

需要实现一个需求:输入框中输入十六进制数如123ABC,实际传给后台时需要在前面补齐00,补满8位变成00123ABC,在Chrome和FF中我只用了一个padStart(8,0)即可解决问题,但是现在仍然需要适配老的IE浏览器,这个函数就不支持了,有没有什么办法可以补齐呢,不用体现到页面上,在提交的时候补到URL上即可,需要用到原生JS,因为是硬件要用无法使用框架和库

PS:没描述清楚,要求n位,但是输入的位数是不确定的, 所以不能简单拼接吧

  • 写回答

4条回答 默认 最新

  • 林一怂儿 新星创作者: 前端开发技术领域 2022-07-04 21:26
    关注

    IE 5 以上都可以支持。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            var a = '124asd';
            if (!String.prototype.padStart) String.prototype.padStart = function (maxlength, fillString) {
                var res = '';
                for (var i = 0; i < maxlength - this.length; i++) res += fillString || ' '
                return res + this
            }
            console.log(a.padStart(8, '0')); 
        </script>
    </body>
    
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月15日
  • 已采纳回答 7月7日
  • 修改了问题 7月7日
  • 创建了问题 7月4日