[javascript] 비어있을 때 HTML 텍스트 상자에 힌트를 표시하려면 어떻게해야합니까?

웹 페이지의 검색 창에 “검색”이라는 단어가 회색 기울임 꼴로 표시되기를 원합니다. 상자에 초점이 도착하면 빈 텍스트 상자처럼 보입니다. 텍스트가 이미 있으면 텍스트를 정상적으로 표시해야합니다 (검정, 비 이탈리아어). 라벨을 제거하면 혼란을 피할 수 있습니다.

BTW, 이것은 페이지상의 Ajax 검색이므로 버튼이 없습니다.



답변

최신 브라우저에서만이 기능을 사용할 수있는 다른 옵션은 HTML 5의 자리 표시 자 속성이 제공하는 지원을 사용하는 것입니다.

<input name="email" placeholder="Email Address">

스타일이 없으면 Chrome에서 다음과 같이 보입니다.

여기에 이미지 설명을 입력하십시오

당신은 밖으로 데모를 시도 할 수 있습니다 여기에 와있는 CSS와 HTML5 자리 표시 자 스타일링 .

이 기능브라우저 호환성 을 확인하십시오 . Firefox 지원은 3.7에서 추가되었습니다. 크롬은 괜찮습니다. Internet Explorer는 10에서만 지원을 추가했습니다. 입력 자리 표시자를 지원하지 않는 브라우저를 대상으로하는 경우 jQuery HTML5 자리 표시 자라는 jQuery 플러그인 을 사용하고 다음 JavaScript 코드를 추가하여 활성화 할 수 있습니다.

$('input[placeholder], textarea[placeholder]').placeholder();


답변

이를 텍스트 상자 워터 마크라고하며 JavaScript를 통해 수행됩니다.

또는 jQuery를 사용하는 경우 훨씬 더 나은 방법입니다.


답변

HTML 의 속성 을 사용 하여 자리 표시자를 설정할 수 있습니다 ( 브라우저 지원 ). 와는 할 수 CSS로 변경 (브라우저 지원이 제한되어 있지만).placeholderfont-stylecolor

input[type=search]::-webkit-input-placeholder { /* Safari, Chrome(, Opera?) */
 color:gray;
 font-style:italic;
}
input[type=search]:-moz-placeholder { /* Firefox 18- */
 color:gray;
 font-style:italic;
}
input[type=search]::-moz-placeholder { /* Firefox 19+ */
 color:gray;
 font-style:italic;
}
input[type=search]:-ms-input-placeholder { /* IE (10+?) */
 color:gray;
 font-style:italic;
}
<input placeholder="Search" type="search" name="q">


답변

특수 CSS 클래스를 추가 및 제거하고 입력 값을 onfocus/ onblurJavaScript로 수정할 수 있습니다 .

<input type="text" class="hint" value="Search..."
    onfocus="if (this.className=='hint') { this.className = ''; this.value = ''; }"
    onblur="if (this.value == '') { this.className = 'hint'; this.value = 'Search...'; }">

그런 다음 CSS에서 원하는 스타일 로 힌트 클래스를 지정 하십시오.

input.hint {
    color: grey;
}


답변

가장 좋은 방법은 jQuery 또는 YUI 와 같은 일종의 JavaScript 라이브러리를 사용하여 JavaScript 이벤트를 연결하는 것입니다. 와 연결하고 외부 .js 파일에 코드를 넣는 것입니다.

그러나 빠르고 더러운 솔루션을 원한다면 이것이 인라인 HTML 솔루션입니다.

<input type="text" id="textbox" value="Search"
    onclick="if(this.value=='Search'){this.value=''; this.style.color='#000'}"
    onblur="if(this.value==''){this.value='Search'; this.style.color='#555'}" />

업데이트 : 요청한 채색 물을 추가했습니다.


답변

얼마 전에 내 웹 사이트 에이 솔루션을 게시 했습니다 . 사용하려면 단일 .js파일을 가져 오십시오 .

<script type="text/javascript" src="/hint-textbox.js"></script>

그런 다음 CSS 클래스에 힌트를 줄 입력에 주석을 답니다 hintTextbox.

<input type="text" name="email" value="enter email" class="hintTextbox" />

자세한 정보 및 예는 여기에서 확인할 수 있습니다 .


답변

다음은 Google Ajax 라이브러리 캐시와 일부 jQuery 매직이 포함 된 기능적인 예입니다.

이것은 CSS 일 것입니다 :

<style type="text/stylesheet" media="screen">
    .inputblank { color:gray; }  /* Class to use for blank input */
</style>

이것은 JavaScript 코드 일 것입니다 :

<script language="javascript"
        type="text/javascript"
        src="http://www.google.com/jsapi">
</script>
<script>
    // Load jQuery
    google.load("jquery", "1");

    google.setOnLoadCallback(function() {
        $("#search_form")
            .submit(function() {
                alert("Submitted. Value= " + $("input:first").val());
                return false;
        });

        $("#keywords")
            .focus(function() {
                if ($(this).val() == 'Search') {
                    $(this)
                    .removeClass('inputblank')
                    .val('');
                }
            })
            .blur(function() {
                if ($(this).val() == '') {
                    $(this)
                    .addClass('inputblank')
                    .val('Search');
                }
            });
    });
</script>

그리고 이것은 HTML이 될 것입니다 :

<form id="search_form">
    <fieldset>
        <legend>Search the site</legend>
            <label for="keywords">Keywords:</label>
        <input id="keywords" type="text" class="inputblank" value="Search"/>
    </fieldset>
</form>

GAJAXLibs와 jQuery에 모두 관심을 갖기를 바랍니다.