jQuery 구현을 사용하면 제출할 때 기본값을 쉽게 제거 할 수 있습니다. 아래는 예입니다.
$('#submit').click(function(){
var text = this.attr('placeholder');
var inputvalue = this.val(); // you need to collect this anyways
if (text === inputvalue) inputvalue = "";
// $.ajax(... // do your ajax thing here
});
나는 당신이 오버레이를 찾고 있다는 것을 알고 있지만, 당신은이 경로의 용이성을 선호 할 것입니다 (이제 위에서 쓴 것을 알고 있습니다). 그렇다면 내 프로젝트를 위해 이것을 작성했으며 실제로 훌륭하게 작동하며 (jQuery 필요) 전체 사이트에 구현하는 데 몇 분 정도 걸립니다. 처음에는 회색 텍스트, 초점이 맞으면 밝은 회색, 입력 할 때 검은 색을 제공합니다. 또한 입력 필드가 비어있을 때마다 자리 표시 자 텍스트를 제공합니다.
먼저 양식을 설정하고 입력 태그에 자리 표시 자 속성을 포함시킵니다.
<input placeholder="enter your email here">
이 코드를 복사하여 placeholder.js로 저장하십시오.
(function( $ ){
$.fn.placeHolder = function() {
var input = this;
var text = input.attr('placeholder'); // make sure you have your placeholder attributes completed for each input field
if (text) input.val(text).css({ color:'grey' });
input.focus(function(){
if (input.val() === text) input.css({ color:'lightGrey' }).selectRange(0,0).one('keydown', function(){
input.val("").css({ color:'black' });
});
});
input.blur(function(){
if (input.val() == "" || input.val() === text) input.val(text).css({ color:'grey' });
});
input.keyup(function(){
if (input.val() == "") input.val(text).css({ color:'lightGrey' }).selectRange(0,0).one('keydown', function(){
input.val("").css({ color:'black' });
});
});
input.mouseup(function(){
if (input.val() === text) input.selectRange(0,0);
});
};
$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) { this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
})( jQuery );
하나의 입력에만 사용하려면
$('#myinput').placeHolder(); // just one
브라우저가 HTML5 자리 표시 자 속성을 지원하지 않는 경우 사이트의 모든 입력 필드에 구현하는 것이 좋습니다.
var placeholder = 'placeholder' in document.createElement('input');
if (!placeholder) {
$.getScript("../js/placeholder.js", function() {
$(":input").each(function(){ // this will work for all input fields
$(this).placeHolder();
});
});
}