溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何使用JS實(shí)現(xiàn)IE8瀏覽器input輸入數(shù)字

發(fā)布時(shí)間:2022-01-10 17:56:21 來(lái)源:億速云 閱讀:191 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

今天就跟大家聊聊有關(guān)如何使用JS實(shí)現(xiàn)IE8瀏覽器input輸入數(shù)字,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

今天處理一個(gè)表單的限制問(wèn)題,然后測(cè)試說(shuō)input輸入框能輸入數(shù)字以外的字符。當(dāng)時(shí)我就表示在精神上強(qiáng)烈的譴責(zé)IE瀏覽器的各個(gè)版本。

在我測(cè)試后發(fā)現(xiàn)谷歌及其他瀏覽器都挺好的,就是IE瀏覽器不行,然后想著直接使用JS比較好,也不容易出現(xiàn)不兼容問(wèn)題。

這里的代碼是做了很多的改變,因?yàn)樽约旱捻?xiàng)目上用的是跟其他的插件一起使用的,所以不需要現(xiàn)在這樣麻煩。

使用方法很簡(jiǎn)單,下面是一些參數(shù)

1、data-cgldigits:小數(shù)位,0開(kāi)始【默認(rèn)值為0】

2、data-cglpone:是否支持負(fù)數(shù) yes為支持,no為不支持【默認(rèn)值為no】

3、data-cglzero:當(dāng)input的值0的時(shí)候是否顯示0,yes顯示,no為不顯示【默認(rèn)值為yes】

下面是html的使用

<input type=”text” class=”cgl_inputnumber” data-cgldigits=”2″ data-cglpone=”yes” data-cglzero=”no”/>

點(diǎn)擊demo查看效果

一、html部分

<ul class="ul">
<li><input type="text" class="cgl_inputnumber" data-cgldigits="0" data-cglpone="yes" data-cglzero="no"/></li>
<li><input type="text" class="cgl_inputnumber" data-cgldigits="1" data-cglpone="no"/></li>
<li><input type="text" class="cgl_inputnumber" data-cgldigits="2" data-cglpone="yes"/></li>
<li><input type="text" class="cgl_inputnumber" data-cgldigits="3" data-cglpone="no"/></li>
</ul>

二、css部分
<pre

<style>
.ul{ width:500px; margin:0 auto;}
.ul li{ padding:10px;}
.ul li input{ display:block; width:478px; height:30px; line-height:30px; font-size:14px; padding:0 10px; border:1px solid #666;}
</style>

三、js部分

<script type="text/javascript">
$(window).ready(function(){(www.gendan.com)
(function(){
$('.cgl_inputnumber').on('change',function(){
// 定義空的容器
var cgl_inputNumberVal = '';
var cgl_inputNumberPoint = 0;
var cgl_inputNumberNegative = '';

        // 當(dāng)input的值0的時(shí)候是否顯示0,默認(rèn)顯示
        var cgl_inputNumberZero = $(this).data('cglzero') || 'yes';
        // 定義小數(shù)點(diǎn)后幾位數(shù),這里直接截取,不是四舍五入
        var cgl_inputNumberDigits = $(this).data('cgldigits') || 0;
        // 是否支持負(fù)數(shù)  yes:支持   fasle:不支持
        var cgl_inputNumberPoNe = $(this).data('cglpone') || 'no';

        /*console.log(
            '小數(shù)點(diǎn):' + cgl_inputNumberDigits + '\n' +
            '正負(fù)數(shù):' + cgl_inputNumberPoNe + '\n' +
            '0顯示:' + cgl_inputNumberZero)*/

        // 找到input的值
        var cgl_inputNumberValReal = $(this).val();
        // 對(duì)input里面的數(shù)字進(jìn)行循環(huán)查詢(xún)
        for (var i = 0; i < cgl_inputNumberValReal.length; i++) {
            // 求每個(gè)字的charCodeAt值
            var cgl_inputNumberValRealCode = cgl_inputNumberValReal.charCodeAt(i);
            if (cgl_inputNumberValReal.charCodeAt(0) == 45 && cgl_inputNumberPoNe == 'yes'){
                cgl_inputNumberNegative = '-'
            }else{
                cgl_inputNumberNegative = ''
            }
            // 對(duì)每個(gè)字進(jìn)行判斷,0-9+.
            if (47 < cgl_inputNumberValRealCode && cgl_inputNumberValRealCode < 58 ){
                cgl_inputNumberVal+=cgl_inputNumberValReal[i]
            }else if (cgl_inputNumberValRealCode == 46){
                //開(kāi)始對(duì) . 進(jìn)行判斷只留一個(gè),這里留下第一個(gè)
                cgl_inputNumberPoint ++;
                if( cgl_inputNumberPoint == 1){
                    cgl_inputNumberVal+=cgl_inputNumberValReal[i]
                }else{
                    //第二次的 . 不執(zhí)行
                };
            }else{
                // 只可輸入數(shù)字,略過(guò)其他字符
            };
        };
        // 計(jì)算小數(shù)位數(shù)
        cgl_inputNumberVal = Math.floor(cgl_inputNumberVal * (Math.pow(10,cgl_inputNumberDigits))) / ((Math.pow(10,cgl_inputNumberDigits)));
        // 給input賦值
        if (cgl_inputNumberVal == 0){
            // 控制顯示0的時(shí)候
            if(cgl_inputNumberZero == 'yes'){
                $(this).val('0');
            }else{
                $(this).val('');
            }
        }else{
            $(this).val(cgl_inputNumberNegative + cgl_inputNumberVal);
        }
    });
}())

});
</script>

看完上述內(nèi)容,你們對(duì)如何使用JS實(shí)現(xiàn)IE8瀏覽器input輸入數(shù)字有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI