티스토리 뷰
고객의 요건은 간단했다.
웹에서 문자메시지를 보내게 해달라는 거였다.
구현은 문제 될거 없었지만 한글 포함해서 80byte만 입력해야 한다는 것이다.
textarea의 경우에 문자메시지를 입력받을 경우를 가정했을때...
onkeypress 이벤트를 사용하면 한글이 입력 될때에는 반응이 없기 때문에 안된다.
그래서 onkeydown, onkeyup 이벤트를 사용한다.
뭐 나머지는 다음과 같이 처리한다.
event.keyCode = 0
event.returnValue = false;
예제>>
/**
* SMS전송문자의 길이가 80Byte가 초과하는지 검사한다.
*/
function msgByteCount(obj) {
if(obj.value) {
var bytesLength = 0;
var txtVal = obj.value;
var charCode = -1;
for(var idx=0, limit=txtVal.length; idx<limit; idx++) {
charCode = txtVal.charCodeAt(idx);
if (charCode > 128) {
bytesLength += 2;
}
else {
bytesLength++;
}
} // end of for
// 마지막 입력 char
var lastCharLength = 0;
if(event.keyCode > 128) {
lastCharLength = 2;
}
else if(!isContainValue(event.keyCode)){
lastCharLength = 1;
}
bytesLength += lastCharLength;
if(bytesLength > 80 && !isContainValue(event.keyCode)) {
bytesLength = bytesLength - lastCharLength;
if (event.preventDefault) {
event.preventDefault();
return false;
}
else {
// event canvel
event.keyCode = 0;
event.returnValue = false;
// TODO : 전송버튼 포커스 이동
}
}
// byte show
document.getElementById("byte_show").innerHTML = "("+ bytesLength +"/80)";
}
}
[출처] 한글입력 Byte계산|작성자 그림자
'WEB > JavaScript' 카테고리의 다른 글
html input타입에 tabindex값 넣어주기 (0) | 2011.10.11 |
---|---|
[javascript] lastIndexOf 와 substring 활용예 (2) | 2011.10.11 |
on 이벤트 (0) | 2011.10.11 |
a href --> 자바스크립트에서 하기.. (0) | 2011.10.11 |
div 지정영역만 Print(프린트)하기 (0) | 2011.10.11 |
- Total
- Today
- Yesterday
- jason maraz
- 자바정의
- dom vs sax
- java 인스턴스
- 자바스크립트강의
- eclipse 단축키
- sax vs dom
- 갈릴레오 svn
- eclipse svn
- bruno mars marry you
- 자바 객체
- Split
- java파일삭제
- 체크박스
- Marry You
- This Android SDK requires An...e ADT to the latest version
- 불독맨션 좋아요
- MySQL
- jason marz im yours
- 문자열자르기
- java 객체
- 스크린세이버
- java파일복사
- Mysql명령어
- 타루 예뻐할께
- javascript강의
- 펌방지해제
- marry you 프로포즈
- 이클립스 단축키
- lol 서포터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |