일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인텔리J
- ServletContextInitializer
- 스프링
- WebApplicationInitializer
- 데브툴즈
- 스프링시큐리티
- OAuth2.0
- mybatis
- OAuth 2.0
- apache thrift
- Multi DataSource
- 스프링 부트
- spring cloud config
- Spring Boot
- devtools
- spring boot 1.3
- Fiilter
- spring boot mybatis
- spring camp
- spring test mvc
- spring-mybatis
- Spring Security OAuth
- spring cloud
- KSUG
- spring security
- elasticache
- spring boot devtools
- spring
- Spring MVC
- @MVC
- Today
- Total
홍이의 개발 노트
jQuery placeholder 플러그인 본문
html5에 placeholder 자체 기능이 있지만 문제가 많다.
예를 들면 safari에서 정렬이 안먹힌다던가
익스플로러6,7에서 안먹히는 문제도 있다.
보통 내용 부분을 포커스에 맞쳐 없애던가 blur 이벤트에 다시 생긴다던가
하는 작업을 해줘야 하는데 각각 프로그래밍을 해줘야 되는 문제가 생긴다
조회 부분에서 placeholder 부분을 가져가거나 하는일이 생기는데
생각해보니 차라리 div하나를 생성 시켜 텍스트 input 박스 위에 올려 놓는 방법은 어떨까 라고 생각 되어
한번 jquery로 만들어 보았다.
※ textPlaceholder jquery plugin
(function($){
$.fn.textPlaceholder = function () {
return this.each(function(){
var that = this;
var placeholder = that.getAttribute('placeholder');
if (!placeholder) return;
var $input = $(that);
$input.attr('placeholder', '');
var $placeholderDiv = $('<div/>')
.text(placeholder)
.addClass('text-placeholder')
.css({'position' : 'absolute',
'top':$input.position().top,
'left':$input.position().left})
.height($input.height())
.width($input.width())
.appendTo($input.parent());
$placeholderDiv.click(function() {
$input.focus();
});
$input.focus(function(){
$placeholderDiv.hide();
});
$input.blur(function(){
if ($(this).val()==''){
$placeholderDiv.show();
}
});
});
}
})(jQuery);
<body>
...
<input ... placeholder="입력하세요" ... />
...
</body>
------------------------------------------------------------
<script>
...
$('[placeholder]').textPlaceholder();
...
</script>
------------------------------------------------------------
<style>
.text-placeholder {
... 필요한 css ...
}
</style>
컨셉은 https://github.com/NV/placeholder.js 를 참고 했습니다.
링크에 있는 placeholder는 input 내용을 변경하는 것이라 submit은 placeholder값을 안가지고 가도록 체크해주지만
직접 input 값을 참조하여 가져 갈 경우에는 직접 프로그래밍을 해줘서 placeholder값을 안가지고
가도록 해야되기 때문에 완전히 새로 만들었습니다.
인터페이스는 동일하게 만들었지만 말이죠 ^^;;;