input textareaテキストボックスの長さ制限(中国語の文字を含む)
seam項目ではtextareaテキストボックス入力に関連していますが、入力の長さを制限するために、jsで制限して、twitter入力のような機能を実現しています.
ページ空間コード:
jsコード:
jsを公共のjsファイルの中に置いて、直接多重化することができます.
ページ空間コード:
<h:inputTextarea id="deviceDesc"
cols="60"
rows="3"
value="#{xHome.instance.deviceDesc}"
onkeydown="chkTextareaLen(this.id,'counterDeviceDesc',255);"
onkeyup="chkTextareaLen(this.id,'counterDeviceDesc',255);"/>
<br/> <span id="counterDeviceDesc" class="required">255</span>
jsコード:
/**
*textarea
*textareaId:textarea dom
*maxLen:
*/
function chkTextareaLen(textareaId,counterId,maxLen) {
try{
var textareaValue = document.getElementById(textareaId).value;
var curLen = 0,substrLen = 0;
for (var i=0; i<textareaValue.length; i++) {
if (textareaValue.charCodeAt(i)>127 || textareaValue.charCodeAt(i)==94) {
curLen += 2;
} else {
curLen ++;
}
if(curLen > maxLen){
substrLen = i;
break;
}
}
if(curLen > maxLen) {
if(substrLen == 0) substrLen = maxLen;
document.getElementById(textareaId).value = textareaValue.substring(0,substrLen);
alert(" "+maxLen+" ( 2 )");
}else{
document.getElementById(counterId).innerHTML = maxLen - curLen;
}
}catch(e){}
}
jsを公共のjsファイルの中に置いて、直接多重化することができます.