2011-07-26 13 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); 
    } 
}); 

の作業のデモ:​​

+0

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

+0

ああ、.blur()という属性から元のテストを得ることができます。毎日何か新しいことを学ぶ。ありがとう。 – 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'が最も適切なイベントです。また、ぼかしは、フォーカスアウトの約2倍の速さです。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); 
}); 

EDIT: Downvotersあなたはので、私は学ぶことができdownvoted理由を、説明してください。ありがとうございました。

関連する問題