티스토리 뷰
질문1)
input type에서는 maxlength로 글자 제한을 할 수 있는데요,
textarea 에서는 maxlength가 안되더라고요.
글자 제한 하는 태그를 가르쳐주세요.
질문2)
input type="text"에서 maxlength=10을 하면
영문 10, 한글 10자까지 입력되는데요,
영문은 10자, 한글은 5자까지만 입력되도록 하는 법을 가르쳐주세요.
그리고 글자 타이핑 할 때마다 1byte,2byte .. 체크하는 것도 좀 가르쳐주세요.
예)Daum 사이트 카페 게시판 꼬릿말 처럼요..
질문1)
fc_chk_byte 함수는 글자수를 제한하는 함수 입니다.(한글길이까지 고려해서 만듬)
글자수를 제한할 컨트롤에서 onkeyup="fc_chk_byte(this,10);" 이라고 설정하면 됩니다.
fc_chk_byte 함수를 간단히 설명하면 key가 up될때 전체글자수를 읽어서 설정한 글자수가 넘어가면
더이상 넘어가지 못하게합니다. Argument this는 이벤트가 일어난 컨트롤을 말하며 10은 제한할
글자수 입니다. 만약 제한할 글자수가 80글자라면 onkeyup="fc_chk_byte(this,80);" 이라고
하면 되겠죠. 추가로 fc_chk2() 함수는 엔터키를 입력 못하게 하는 함수 입니다.
enter를 입력가능하게 할려면 onkeypress="fc_chk2()"를 지워주세요
밑에 부분 복사해서 실행하세요.^^
<script language="javascript">
/*
' ------------------------------------------------------------------
' Function : fc_chk_byte(aro_name)
' Description : 입력한 글자수를 체크
' Argument : Object Name(글자수를 제한할 컨트롤)
' Return :
' ------------------------------------------------------------------
*/
function fc_chk_byte(aro_name,ari_max)
{
var ls_str = aro_name.value; // 이벤트가 일어난 컨트롤의 value 값
var li_str_len = ls_str.length; // 전체길이
// 변수초기화
var li_max = ari_max; // 제한할 글자수 크기
var i = 0; // for문에 사용
var li_byte = 0; // 한글일경우는 2 그밗에는 1을 더함
var li_len = 0; // substring하기 위해서 사용
var ls_one_char = ""; // 한글자씩 검사한다
var ls_str2 = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.
for(i=0; i< li_str_len; i++)
{
// 한글자추출
ls_one_char = ls_str.charAt(i);
// 한글이면 2를 더한다.
if (escape(ls_one_char).length > 4)
{
li_byte += 2;
}
// 그밗의 경우는 1을 더한다.
else
{
li_byte++;
}
// 전체 크기가 li_max를 넘지않으면
if(li_byte <= li_max)
{
li_len = i + 1;
}
}
// 전체길이를 초과하면
if(li_byte > li_max)
{
alert( li_max + " 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
ls_str2 = ls_str.substr(0, li_len);
aro_name.value = ls_str2;
}
aro_name.focus();
}
/*
' ------------------------------------------------------------------
' Function : fc_chk2()
' Description : Enter키를 못치게한다.
' Argument :
' Return :
' ------------------------------------------------------------------
*/
function fc_chk2()
{
if(event.keyCode == 13)
event.returnValue=false;
}
</script>
< textarea name="txt_aaa" rows="5" cols="60" onkeyup="fc_chk_byte(this,10);" onkeypress="fc_chk2()" >
질문2)
[JS]입력한 글자의 Byte수 체크하기
DB에 자료를 입력할 경우 가끔 column의 size를 over하여 Exception이 발생할 경우가
생깁니다. 데이터를 서버로 전송하기 전에 체크할 수 있는지 고민하다가 만들어봤습니다.
<script language=JavaScript>
/**
* 한글을 2바이트 씩 계산하여 입력받은 문자열이 DB에 저장될 때 총 몇바이트를 차지하는지 계산한다.
* 엔터(\r\n)는 2바이트를 차지한다.
* @param val : 입력받은 문자열
*/
function cal_length(val)
{
// 입력받은 문자열을 escape() 를 이용하여 변환한다.
// 변환한 문자열 중 유니코드(한글 등)는 공통적으로 %uxxxx로 변환된다.
var temp_estr = escape(val);
var s_index = 0;
var e_index = 0;
var temp_str = "";
var cnt = 0;
// 문자열 중에서 유니코드를 찾아 제거하면서 갯수를 센다.
while ((e_index = temp_estr.indexOf("%u", s_index)) >= 0) // 제거할 문자열이 존재한다면
{
temp_str += temp_estr.substring(s_index, e_index);
s_index = e_index + 6;
cnt ++;
}
temp_str += temp_estr.substring(s_index);
temp_str = unescape(temp_str); // 원래 문자열로 바꾼다.
// 유니코드는 2바이트 씩 계산하고 나머지는 1바이트씩 계산한다.
return ((cnt * 2) + temp_str.length) + "";
}
출처: http://okjsp.pe.kr
http://its.acts.ac.kr
- Total
- Today
- Yesterday
- gmlduqrhdwn
- judyOh blog
- naplez.net [ SCJP 1.4 ]
- DB
- web
- 한글 Mozilla 포럼 [실전웹표준가이드]
- (블로그)웹표준연구소 [마루아라소프트]
- 웹 프로그램 및 디자인관련 강좌 사이트
- (블로그)검색엔진 최적화 | 검색엔진 마케팅
- DB 툴 [DB에 대한 정보]
- PHP( 객체 지향 언어로써의 PHP )
- w3c표준규격 번역
- 서버 주무르기
- 검색엔진 마스터
- apache-kr.org
- 한국 썬 개발자 네트워크
- 검색엔진 최적화 블로그
- 피라시스닷컴(SVN관련)
- 웹기반 DNS 서비스 DNSEver.com
- JEUS / Tmax / WebtoB
- 웹기반 무료 DNS서버
- JAVA 강좌
- 少年易老學難成, 一寸光陰不可輕. 未覺池塘春草夢, 階前梧…
- MyJavaServer ( JSP 무료 호스팅 )
- I GOT IT (IT`S CRADLE & INCUBA…
- Todayis(HS)
- oracleclub.com
- Prototype (JavaScript Framewor…
- JSPWiki (openframework.or.kr)
- 제갈장비(JAVA_BLOG)
- jakartaproject
- Oracle_download
- jQuery plugin
- Test
- 안드로이드 앱 개발
- 행복한 개발자입니다.
- Flex & etc
- Flex & Design
- (iBatis)참고
- FLEX참고 사이트
- 대용량파일에 대한 watchservice 참고
- win7 update pack
- excel
- mybatipse #egovframework3.8
- CSS
- vi
- php
- 다운로드
- iBatis
- derby
- flex
- sw기술자 경력관리
- java
- GD
- 자동증가
- 머먹구사냐
- 비교문
- 시퀀스생성
- apache
- find
- Ajax
- mysql
- 뚜비
- ASP
- 정보보호전문자격
- Linux
- 롤링
- DOM
- SEO
- 오라클
- 구글
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |