이번 작업에서 입력제한을 두는 input 박스가 있어서 해당 내용을 정리했습니다.
일반적으로 태그의 maxlength 속성으로 처리를 하지만, 한글의 입력제한은 제대로 작동하지 않게 됩니다.
아래 html코드에서 maxlength="200" 으로 하고 제이쿼리를 적용하면, 영문,숫자는 200자, 한글은 100자까지 정상적으로 제한이 됩니다.
하지만, 중요한 사실 한가지는 DataBase별 차이가 있다는 점...
-mysql(4.1이상,요즘은 보통 5.x이상이다) , MariaDB : varchar(10) : 한글10자, 영문,숫자 10자
-MS-SQL : varchar(10) : 한글 5자, 영문,숫자 10자 , nvarchar(10) : 한글 10자, 영문, 숫자 10자
-Oracle : varchar2(10) : 한글 3자, 영문,숫자 10자, nvarchar2(10) : 한글 10자, 영문,숫자 10자
현재 홈페이지는 mysql을 사용하므로 varchar(200)이면, 한글도 200자가 들어가므로 아래와 같은 처리가 필요 없다는 ㅜㅜ(다른분들도 저처럼 뻘짓을 하지 말기 바랍니다^^)
- html 태그부분
<input type="text" maxlength="200" onblur="inputLengthCheck(this);" value="" placeholder="" id="test" name="test" title="테스트" />
- 제이쿼리(자바스크립트)부분
<script type="text/javascript">
function inputLengthCheck(eventInput){
var inputText = $(eventInput).val();
var inputMaxLength = $(eventInput).prop("maxlength");
var j = 0;
var count = 0;
for(var i = 0;i < inputText.length;i++) {
val = escape(inputText.charAt(i)).length;
if(val == 6){
j++;
}
j++;
if(j <= inputMaxLength){
count++;
}
}
if(j > inputMaxLength){
eventInput.focus();
$(eventInput).val(inputText.substr(0, count));
errorMessage = $(eventInput).attr('title')+"에서 허용된 문자열의 한글 최대값("+(inputMaxLength/2)+")자를 초과했습니다. \n초과된 내용은 자동으로 삭제 됩니다.";
alert(errorMessage);
}
}
</script>
부트스트랩3 pingendo 프로그램(무료 베타 버전입니다)사용 (0) | 2017.11.10 |
---|---|
부트스트랩3 레이아웃 기초 (0) | 2017.11.08 |
화면 세로가운데 정렬(Jquery 이용) (0) | 2017.08.02 |
웹기반 한글 인터프리터 제작_1 (0) | 2017.04.26 |
웹페이지 이미지 파일 다운로드를 강제로 진행 시키기 (0) | 2015.08.12 |
댓글 영역