2011-03-06 6 views
1

이 코드가 있습니다워터 마크 텍스트를 제출하지 않으려면 어떻게해야하나요?

$(document).ready(function() { 
    $('.watermark').focus(function() { 
     if (this.className == 'watermark') 
     { 
      this.className = ''; 
      this.reset = this.value; 
      this.value = ''; 
     } 
    }); 

    $('.watermark').blur(function() { 
     if (this.value == '') 
     { 
      this.className = 'watermark'; 
      this.value = this.reset; 
     } 
    }); 
}); 

을 그리고 그것은 잘 작동하지만 내 양식을 제출할 때 워터 마크 데이터로 제출됩니다. 내 PHP 처리 파일을 수정하지 않고 워터 마킹 된 텍스트를 공백으로 제출할 수 있습니까? 내 말은 : 텍스트 상자의 클래스가 '워터 마크'인 경우 해당 텍스트 상자에 빈 값을 제출하십시오. 내 PHP 처리 파일을 수정하고 싶지 않지만 JQuery를 사용해도 상관 없다. 가장 좋은 해결책은 제출 버튼의 클릭 이벤트를 캡처하고 워터 마크 값이있는 텍스트 상자를 비워 두는 것입니까?

+0

가장 좋은 해결책은 처음부터 * 값 *을 설정하여 워터 마크를 작성하지 않는 것입니다. 'placeholder'를 사용하거나 (투명) 입력 밑에 레이블을 붙이십시오. – Quentin

+0

자리 표시자를 완벽하게 지원합니까? 나는 그것을 작동시킬 수 없었다. 어떻게 입력 아래에 레이블을 붙이겠습니까? 편집 : 틀림없이 자리 표시 자 텍스트는 Firefox 3.7 이상에서만 작동하며 3.6을 사용하고 있습니다. 업그레이드 할 예정이지만이 것이 새로운 것이면 사용해서는 안됩니다. –

+0

입력에 레이블을 지정하려면 절대 위치 지정을 사용하십시오. 공개되지 않은 예 : http://dorward.me.uk/tmp/label-work/example.html 나를 위해 – Quentin

답변

0

내가 제대로 이해한다면이 작동합니다 :

$('form').submit(function(){ 
    $(this).find('.watermark').each(function(){ 
     if(!this.reset) 
      this.value = ''; 
    }); 
}); 
0

를 사용하여 텍스트 입력 요소에 placeholder 속성이 있기 때문에

<input type="text" placeholder="Text goes here" id="foo" /> 

일부 이전 버전의 브라우저에서 작동하지 않습니다를를 추가 HTML5 placeholder 페이지에 대한 속성 대체 스크립트 (예 : this 또는 this).