jQuery 한글/영어 byte 체크해서 자르기

Open API/Jquery|2016. 11. 15. 17:21
반응형



SMS 발송 폼 처리 중 80 바이트 체크하기 위해서..

사용 편의를 위해 일부 내용이 수정되었습니다.


원개발자분께 감사드립니다. ( http://blog.naver.com/yesdouble/130152964039 )


Test Url : http://www.uhoon.co.kr/test/2410.html

<!DOCTYPE html>
<html>
<head>
	<title>한글/영어 byte 체크해서 자르기</title>
	<script src="http://code.jquery.com/jquery-latest.min.js"></script>
	<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</head>
<body >
<script type="text/javascript">
	$(function () {
		$('.remaining').each(function () {
			// count 정보 및 count 정보와 관련된 textarea/input 요소를 찾아내서 변수에 저장한다.
			var $maxcount = $('.maxcount', this);
			var $count = $('.count', this);
			var $input = $("#contents");

			// .text()가 문자열을 반환하기에 이 문자를 숫자로 만들기 위해 1을 곱한다.
			var maximumByte = $maxcount.text() * 1;
			// update 함수는 keyup, paste, input 이벤트에서 호출한다.
			var update = function () {
				var before = $count.text() * 1;
				var str_len = $input.val().length;
				var cbyte = 0;
				var li_len = 0;
				for (i = 0; i < str_len; i++) {
					var ls_one_char = $input.val().charAt(i);
					if (escape(ls_one_char).length > 4) {
						cbyte += 2; //한글이면 2를 더한다
					} else {
						cbyte++; //한글아니면 1을 다한다
					}
					if (cbyte <= maximumByte) {
						li_len = i + 1;
					}
				}
				// 사용자가 입력한 값이 제한 값을 초과하는지를 검사한다.
				if (parseInt(cbyte) > parseInt(maximumByte)) {
					alert('허용된 글자수가 초과되었습니다.\r\n\n초과된 부분은 자동으로 삭제됩니다.');
					var str = $input.val();
					var str2 = $input.val().substr(0, li_len);
					$input.val(str2);
					var cbyte = 0;
					for (i = 0; i < $input.val().length; i++) {
						var ls_one_char = $input.val().charAt(i);
						if (escape(ls_one_char).length > 4) {
							cbyte += 2; //한글이면 2를 더한다
						} else {
							cbyte++; //한글아니면 1을 다한다
						}
					}
				}
				$count.text(cbyte);
			};
			// input, keyup, paste 이벤트와 update 함수를 바인드한다
			$input.bind('input keyup keydown paste change', function () {
				setTimeout(update, 0)
			});
			update();
		});
	});
</script>
<div>
<textarea rows="5" cols="50" id="contents"/></textarea>
</div>
<span class="remaining">
	<span class="count">0</span>/<span class="maxcount">80</span>byte(한글 40자, 영어 80자)
</span>
</body>
</html>


댓글()

jQuery 동적으로 추가된 객체에 datepicker() 적용하기

Open API/Jquery|2016. 11. 15. 17:17
반응형




동적으로 추가(append)되거나 복제된(clone) 객체에서 


DatePicker()가 작동하지 않는 문제가 확인되어


구글링을 통해 방법들을 찾아보니 hasDatepicker Class가 문제 인지라..


해당 클래스 제거 후 다시 DatePicker 설정을 해줘야 작동합니다.




// 지정된 객체 처리시
$(this).removeClass('hasDatepicker').datepicker();
 
// 클래스를 이용한 처리
$(document).find(".JCaldendar").removeClass('hasDatepicker').datepicker({
    dateFormat: "yy-mm-dd",
    defaultDate: "+1w",
    numberOfMonths: 1,
    changeMonth: true,
    showMonthAfterYear: true ,
    changeYear: true
});


참고 Url : 
http://pdw213.egloos.com/4209246
http://www.sitekickr.com/blog/jquery-datepicker-work-cloned-elements/


댓글()

jQuery defaultValue 가져오기

Open API/Jquery|2016. 11. 15. 14:56
반응형



Jquery 로 defaultValue 읽어오기


종종 필요한 기능인데 페이지 로딩 시 있던 기본 값을 가져오는 기능입니다.


참고 Url : http://stackoverflow.com/questions/4591889/get-default-value-of-an-input-using-jquery




$("#XXX").prop("defaultValue")



댓글()