あなたの問題のいくつかはそれです
if ($("#text").value = 'Message...')
// should be replaced with the line below
if ($(this).val() == 'Message...')
val()
代入演算子の代わりに、および代わりに、等式演算子を使用していることに注意してvalue
ください(恒等演算子も使用できます===
)。
また、テキストが常にリセットされる理由は、#text
要素をクリックするたびにイベントハンドラーがテキストをリセットするためです。したがって、期待される動作を実現するには、イベントハンドラー内でロジックをラップする必要があります。
$("#text").click(function () {
if ($(this).val() == 'Message...')
$(this).val('');
});
「プレースホルダー」効果を実現したい場合は、代わりに以下を使用できます。
$("#text").focusin(function () {
if ($(this).val() == 'Message...')
$(this).val('');
}).focusout(function() {
if ($(this).val() == '')
$(this).val('Message...');
});