天天看點

input框限制輸入多少位問題

我們通常用到限制輸入框如input 框輸入的文字長度的方法就是在dom層給input标簽加屬性minlength和maxlength

比如這樣 minlength=“4” maxlength=“8” 就是最少4個最多8個字元

但是我們在開發的時候不單純的隻是在中文狀态下的輸入,還有英文狀态下輸入的情況,必将網站國際化嘛哈哈哈哈~~~~。

那麼問題來了,中文狀态下8個字元長度挺合适的,英文狀态下僅僅8個字元恐怕是不行的吧。

以下為解決辦法:

解決思路:中文字元是英文字元的2倍,是以當8個字元于中文來說合适的時候16個字元則對英文狀态是合适的

$("#inp").on(“input propertychange”,function(e)

{

checkIt(“inp”,16)

})

function checkIt(bind,maxNum)

{

  var v = document.getElementById(bind).value;

if(v==""){return [];}

var len=0; //中英字元長度計數

  //計算

  for(i=0;i<v.length;i++)

  {

    var c = v.charCodeAt(i);

    if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f))//英文字母狀态

    {

      len++;

    }

else//中文狀态

    {

      len += 2;

    }

    if (len >=maxNum)

    {

      if(i!= v.length-1)

      {

        $("#inp_name").val(v.substr(0,count))

        break;

      }

    }

}

}