使用js限制字符的輸入的數量(還可輸入多少字符)

之前也使用過,不過這次做項目發現了一些問題,對方法又稍微改進了一下。

 

代碼如下:

<script language="javascript" type="text/javascript">
        function isOver(sText, countfield, len) {
            var intlen = sText.value.length;

            if (intlen > len) {
                countfield.value = "最多可輸入" + len.toString() + "個字符";
                alert("最多可輸入" + len + "個字符");
                sText.focus();
                sText.select();
            }
            else {
                var str = "還可輸入的字符數爲";
                var str2 = sText.value;
                var len1 = 0;
                for (var i = 1; i <=intlen; i++) {
                    if (str2.charCodeAt(i) < 128)
                        len1++;
                    else
                        len1 += 2;
                }
                if (len1 > len) {
                    alert("最多可輸入" + len + "個字符");
                }
                else {
                    var str1 = len - len1;
                    countfield.value = str.toString() + str1.toString();
                }
            }
        }
    </script>

以上代碼放在<head></head> 區,下面是調用方法 ,在<body></body>

 

<asp:TextBox ID="TexTitle" runat="server" οnkeydοwn="isOver(this,this.form.Text1,100); "></asp:TextBox>
        <input id="Text1 " type="text" name="Text1" readonly="readonly" value=‘最多輸入100個字符“ /><br />

 

請注意上面紅色字體部分 :之前是for (var i = 0; i <intlen; i++),但發現這樣在輸入框裏輸入第一個字符時並不執行事件,輸入第二個字符時才執行,改成for (var i = 1; i <=intlen; i++)發現能用了,不過其中的道理我還是不怎麼清楚,覺的這個方法寫的不是很好,如果大家有更好的方法多多發表呀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章