일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java21
- grafana local
- url 파일 다운로드
- docker 설치
- memcached
- java 버전별
- MySQL
- java9
- windows grafana 설치
- 그라파나 설치
- spring boot
- Java
- spring file download for url
- docker
- k6 gui
- java8
- grafana 설치
- k6 granafa influxdb
- java file download for path
- grafana windows
- 리눅스
- CentOS6
- java file download for url
- spring
- jvm
- JavaScript
- SpringBoot
- spring file download for path
- 도커
- React
- Today
- Total
개발자의 길
[javascript]textarea 글자수 제한에서 substring() 문제 본문
textarea 에서 글자수를 제한할 일이 생겼다.
그런데 해당 내용이 submit() 할 때 체크하는 것이 아니라, 사용자의 입력에 따라 계속 체크되어야 한다.
그래서..
<textarea id="comment" name="comment" onKeyUp="checkLength(this);" onKeyDown="checkLength(this);"></textarea>
로 onKeyUp 이벤트를 잡아본다. 사용자가 입력할 때마다 체크하겠다는 얘기다.
그리고 자바스크립트로
function checkLength(comment) {
if (comment.value.length > 10 ) {
comment.value = comment.value.substring(0, 10);
return false;
}
}
10자까지 입력받고, 11자를 입력하면 마지막 글자가 삭제되면서 10자로 고정 시켜 함수이다.
이렇게 만들었더니.. 영문과 숫자, 특수문자에서는 잘 동작한다.
그랬는데, 문제가 있다.
한글에서 11번째 글자를 입력하면 1~10번째 글자는 모두 지워지고, 11번째 글자가 남게된다.
내가 원하는 건 1~10번째 글자가 남고, 11번째 글자가 지워지는 것인데 말이다.
그러던 중 포커스 문제라는 것을 알게 되었다.
그래서 아래와 같이 포커스 노가다를 해주면 해결된다.
function checkLength(comment) {
if (comment.value.length > 10 ) {
comment.blur();
comment.value = comment.value.substring(0, 10);
comment.focus();
return false;
}
}
*) substring 하기 전에 alert() 을 띄우면 저렇게 해줄 필요없다. ex) alert('10자 이내로 입력');
'2. JS' 카테고리의 다른 글
[js] 자주 사용하는 정규식(id,password,url,email,ip 등) (0) | 2015.11.10 |
---|---|
[jquery] .attr() .prop() 차이 (0) | 2015.11.05 |
[javascript]event.stopPropagation(),event.preventDefault() 설명 (0) | 2014.10.07 |
[javascript] XMLHttpRequest() 객체 (1) | 2014.07.02 |
[jquery] 차트 사이트 모음 (0) | 2014.03.06 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.