2012-01-11 14 views
2

誰かがボックスにテキストを入力すると、次のコードを使用してテキストフィールドにラベルを表示したり非表示にしています。jQuery構文の問題 - ぼかし+フォーカスの問題

私がしようとしているのは、テキストが消えるボックスをクリックすると、テキストを入力しないと、ラベルが再び表示されます。私は間違って何をやっているの?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("input:text").focus(function() { 
      if ($(this).val == "Name/Email:") { 
       $(this).val("");  
      }; 
     }); 

     $("input:text").blur(function() { 
      if ($(this).val == "") { 
       $(this).val("Name/Email:"); 
      }; 
     }); 
    }); 
</script> 

<input id="page4-input1" type="text" value="Name/Email:" /> 
<input id="page4-input2" type="text" value="Name/Email:" /> 
<input id="page4-input3" type="text" value="Name/Email:" /> 
<input id="page4-input4" type="text" value="Name/Email:" /> 
<input id="page4-input5" type="text" value="Name/Email:" /> 
+0

を入力ボックスをクリックすると、何が発生していないとラベルが箱 – Undefined

答えて

1
$(this).val 

代わりにすべきである:

$(this).val() 

それは方法(としない性質)からです。

Your code, fixed.

また、'placeholder' attributeを使用して、それをサポートしていないブラウザでJavaScriptにフォールバックを検討してください。

+0

パーフェクトにとどまり、私が覚えているものそれは次回は!あなたが私が(タイマーとすべて)することができれば、私は受け入れられた答えを与えます。 – Undefined

0

比較を実行するときは、val後にブラケットを逃した:

$("input:text").focus(function() { 
    if ($(this).val() == "Name/Email:") { 
     $(this).val("");  
    }; 
}); 

$("input:text").blur(function() { 
    if ($(this).val() == "") { 
     $(this).val("Name/Email:"); 
    }; 
}); 

Example fiddle