메인
기술
메인
기술
무료게임
잡담
자유
개인
일정
갤러리
회원가입
계정 찾기
로그인
HOME
기술
입력 글자바이트 제한 textarea,textbox용
목록
작성자
mins
작성 : 2006-12-19 17:52
조회 : 155
지남
1일간
2006-12-19
-
2006-12-19
좌표
첨부된 파일이 없습니다.
#javascript
<script> //================================================================ // 문자열 바이트 알아내기 //================================================================ function cm_get_byte(str) { //문자열의 byte 길이를 알아냄(한글 2byte로 처리) var i,m=str.length, re_count=0,val = 0;; for(i=0;i<m;i++) { val = escape(str.charAt(i)).length; if(val>3) re_count++; re_count++; } return re_count; } function cm_get_byte_length(str,limit_byte){ //지정된 바이트 길이만큼의 length를 반환, 홀수로 짤리면 -1의 길이반환 var i,m=str.length, re_count=0,val = 0;; var len_count = 0; for(i=0;re_count<limit_byte ;i++) { val = escape(str.charAt(i)).length; len_count++; if(val>3) re_count++; re_count++; } if(re_count%2 == 1) return (len_count-1); else return (len_count); } //================================================================ // 입력 글자바이트 제한 (필수 : 문자열 바이트 알아내기) // textarea에 사용 //================================================================ function input_textarea_limit_byte(ta,limit){ var layout = document.createElement('table'); // layout.border='2'; layout.style.padding='0px'; layout.style.margin='0px'; if(ta &&ta.style && ta.style.width){ layout.style.width=ta.style.width } layout.border="0"; layout.cellspacing="0"; layout.cellpadding="0"; var tr1 = layout.insertRow(-1); var td1 = tr1.insertCell(-1); td1.style.padding='0px'; td1.style.textAlign='right'; var tr2 = layout.insertRow(-1); var td2 = tr2.insertCell(-1); td2.style.padding='0px'; td2.style.textAlign='right'; var txt_limit = document.createElement('input'); txt_limit.type='text'; txt_limit.style.borderStyle='none'; txt_limit.style.textAlign='right'; txt_limit.style.fontSize='10px'; txt_limit.style.width='40px'; txt_limit.readOnly=true; txt_limit.value=0; var span_text1 = document.createElement('span'); span_text1.innerHTML='Limit : '; var span_text2 = document.createElement('span'); if(limit){ span_text2.innerHTML=' byte /'+limit+' byte'; }else{ span_text2.innerHTML=' byte '; } var div_title = document.createElement('div'); div_title.style.fontSize='10px'; div_title.appendChild(span_text1); div_title.appendChild(txt_limit); div_title.appendChild(span_text2); if(ta.tagName.toString().toLowerCase()=='textarea'){ //textarea일 경우만 if(!ta.rows){ta.rows="3";} var btn_0 = document.createElement('input'); btn_0.type='button'; btn_0.value='■'; btn_0.style.fontSize="10px"; btn_0.style.width="18px"; btn_0.style.height="18px"; btn_0.style.borderWidth="1px"; btn_0.onclick=function(){ this.blur(); ta.rows='3'; } var btn_p = btn_0.cloneNode(true); btn_p.value='▼'; btn_p.onclick=function(){ this.blur(); ta.rows=parseInt(ta.rows)+2; } div_title.appendChild(btn_0); div_title.appendChild(btn_p); } ta.parentNode.insertBefore(layout,ta); td1.appendChild(div_title); td2.appendChild(ta); ta.onkeyup=function(){ txt_limit.value= cm_get_byte(this.value) if(limit && txt_limit.value>limit){ alert('Max Byte = '+limit); this.value = this.value.toString().substr(0,cm_get_byte_length(this.value,limit)); txt_limit.value= cm_get_byte(this.value) } } //처음 처리 txt_limit.value= cm_get_byte(ta.value) if(limit && txt_limit.value>limit){ ta.value = ta.value.toString().substr(0,cm_get_byte_length(ta.value,limit)); } txt_limit.value= cm_get_byte(ta.value) } </script>
"공대여자는 이쁘다."를 나타내야 쓸 수 있습니다.
<script type="text/javascript">
input_textarea_limit_byte(document.getElementById('test_textarea1'),1000);
</script>
<script type="text/javascript">
input_textarea_limit_byte(document.getElementById('test_textarea2'),50);
</script>
"공대여자는 이쁘다."를 나타내야 쓸 수 있습니다.
<script type="text/javascript">
input_textarea_limit_byte(document.getElementById('test_textarea3'));
</script>
댓글
/
/
답변
수정
삭제
No Nickname
No Comment
새로운 댓글 작성
권한이 없습니다.
{{m_row.m_nick}}
내용이 너무 많습니다!
-
no-star
★☆☆☆☆
★★☆☆☆
★★★☆☆
★★★★☆
★★★★★
확인
게시물 : 1641 (110 page)
📅 달력형
📷 갤러리형
RSS
tag
제목
내용
제목+내용
제목+내용+코멘트
작성자
태그
검색
No
제목
작성자
날짜
조회
공지
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
#기본형
공대여자
24-02-06
02-06
4945
공지
유용한 리눅스(LINUX) 명령어
#linux
#command
공대여자
11-03-03
03-03
14506
공지
[공지] 기술 게시판
#etc
#공지
mins01
05-06-24
06-24
14681
1641
swiper 에서 부모가 보이고 안보이고 할 때 슬라이드가 이상해지는 것 현상 방지 옵션.
new
#swiper
공대여자
24-05-10
05-10
16
1640
ui_treemap
2
#treemap
공대여자
24-04-23
04-23
157
1639
:scope selector , querySelector 에서 this, self node 지정
1
#css
#this
#self
#scope
공대여자
24-04-17
04-17
160
1638
game_tictactoe
2
#game
공대여자
24-04-09
04-09
132
1637
bootstrap extensions 부트스트랩 확장
2
#bootstrap
#css
공대여자
24-03-26
03-26
265
1636
윈도우 화면 새로 고침 하기, 그래픽 드라이버 재시작
2
#윈도우
#window
공대여자
24-03-26
03-26
221
1635
contenteditable 에서 포커스가 안생길 때 강제로 포커스 주는 코드
#range
#selection
#contenteditable
공대여자
24-03-10
03-10
283
1634
ui_layerForElement 요소 기준으로 레이어 위치 잡기
2
#layer
공대여자
24-03-08
03-08
243
1633
typingLetters 한글자씩 나타내기
1
#html
#effect
공대여자
24-03-06
03-06
315
1632
scrollbars styling
1
#css
#scrollbars
#styling
공대여자
24-02-29
02-29
378
1631
[기본형] chartjs 기본 설정 코드
#chartjs
공대여자
24-02-29
02-29
324
1630
ui_elbowConnector 연결선
2
#connector
공대여자
24-02-26
02-26
257
1629
js_colorschemes
3
#js
#color
공대여자
24-02-22
02-22
291
1628
색상에 대한 설명,파레트,네이밍
1
#color
공대여자
24-02-22
02-22
284
1627
css로 만든 태양계 공전 자전 표시
1
#css
공대여자
24-02-20
02-20
409