2011-07-26 3 views
2

현재 사용자가 클릭 한 후 텍스트를 지우는 로그인 양식이 있습니다. 필드가 포커스를 잃고 비어 있으면 필드의 값을 원래 텍스트로 바꿀 수 있습니까? 뭔가 같은 것공백으로 남겨두면 텍스트 상자의 텍스트를 다시 채우십시오.

$("#input_field").loseFocus(//Total pseudocode. 
    if((this).attr("value")==''){ 
     (this).attr("value","Original text! Woohoo!"); 
    } 
); 

나는 jQuery를 사용하고 필요한 경우 웹 페이지를 제공 할 수있다.

답변

6
$("#input_field").blur(function(){ 
    if($(this).val() ==''){ 
     $(this).val(this.defaultValue); 
    } 
}); 

근무 데모 : http://jsfiddle.net/AlienWebguy/gVPHM/1/

+0

'$ (this) .attr ('value ')' –

+0

아,. 블러() 속성에서 원래 테스트를 얻을 수 있습니다. 매일 새로운 것을 배우십시오. 감사. – Salem

+0

@Adam, 그게 작동하지 않습니다 -하지만 defaultValue – AlienWebguy

-1

사용

$("#input_field").focusout(

    if($(this).val().length == 0){ 
    $(this).attr("value","Original text! Woohoo!"); 
    } 

) 

http://api.jquery.com/focusout/을 대한 focusOut 나뿐만 아니라 공백을 할 수 있습니다. 같은

$("#input_field").focusout(

    if(jQuery.trim($(this).val()).length == 0){ 
    $(this).attr("value","Original text! Woohoo!"); 
    } 

) 
+0

-1이 예제에서는 초점이 맞지 않습니다. 포커스 아웃의 목적은 전파를 사용하여 셀렉터의 자식이 포커스를 잃는 경우에 발사하는 것입니다. 입력 필드에는 하위 항목이 없으므로 'blur'가이 경우 가장 적절한 이벤트입니다. 또한 blur는 대략 focusout보다 두 배 빠릅니다. http://jsperf.com/blur-vs-focusout – AlienWebguy

+0

@AlienWebguy 네 말이 맞습니다. 감사! – Matt

-2

뭔가 :

var originalValue = ''; 
$("#field").click(function(){ 
    originalValue = 'Original value'; 
}); 

$("#field").loseFocus(function(){ 
    if(valueNeedsToBeRestored()){ 
     $("#field").attr('value',originalValue); 
}); 

편집 : 당신이 그렇게 내가 배울 수 있습니다을 downvoted 왜 Downvoters, 설명해주십시오. 고맙습니다.

관련 문제