js限制textarea每行輸入字符串長度的代碼
2024-05-06 14:21:03
供稿:網友
但是textarea沒有這個屬性。
asp.net的服務端textbox這個屬性也不起效,所以我們只有用js腳本來控制
好,廢話不多說,先上代碼
javascipt源碼:
代碼如下:
function textCounter(field, maxlimit, lines) {//參數說明:field是textarea對象,maxlimit是最大允許長度,lines是行數
var arr = field.value.split("/n");//首先我們要為驗證行數,通過分行符“/n”
var perLine = "";
var value = "";
if (arr.length < lines) lines = arr.length;//判斷行數是否超出了我們規定的行數,如果超了就把行數改為超出的,因為我們要算字符串長度
for (loop = 0; loop < lines; loop++) {//循環測數字符串總長度,不多說了
perLine = arr[loop];
if (perLine.length > maxlimit)
perLine = perLine.substring(0, maxlimit);
value = value + perLine;
if (loop != lines - 1)
value = value + "/n";
}
if (field.value != value)
field.value = value;
if (checkstr(value, maxlimit)) {//判斷字符串長度是不是超標
field.value = value.substring(0, maxlimit);//刪除超除的多余字符串
}
}
function showOverWords(obj, maxlength) {//顯示剩余的可輸入字符數obj為txteara對象,maxlength最大長度
len = obj.value.length;
$("#wordCount").html(maxlength - len); //這句是jquery的,可以自己相對自己改改。 表示修改id為wordCount標簽的值
}
function checkstr(str, digit) {//判斷中文和英文,字符串的長度是否超標
var n = 0;
for (i = 0; i < str.length; i++) {
var leg = str.charCodeAt(i);//ASCII碼
if (leg > 255) {//大于255的都是中文
n += 2;//如果是中文就是2個字節
} else {
n += 1;//英文,不多說了
}
}
if (n > digit) {
return true;
} else {
return false;
}
}
ok上面有三個函數,我們通過調用這三個函數就可以實現我們所想要的功能