2012-02-12 101 views
0

我試圖讓輸入和textarea的標籤隱藏/顯示功能的工作,但我的jQuery的技能都不夠好標籤..:/隱藏/顯示在輸入文本區域與jQuery

你可能見過這種一千次,我已經閱讀了這個頁面,但我仍然無法弄清楚。

代碼的第一部分工作正常,它在元素獲得焦點時將文本更改爲更淺的顏色,並在開始鍵入時消失。這可能寫得不是很好,但是現在是盡我所能。

$("input, #email_text").focusin(function(){ 

$("label.input", this).css("color", "#f3f3f3"); 

}); 

$("input, #email_text").keypress(function(){ 

$("label.input", this).fadeOut("normal"); 

}); 

在這裏,我希望腳本執行以下操作:如果元素鬆焦點,我希望LabelText的褪色回來,如果用戶已經寫在該領域的東西exept。我可能有if/else語句搞砸了,而且我還沒有掌握.val函數。

$("input, #email_text").focusout(function() { 

if($("#email_text").val() !="") { 

$("label.input", this).fadeIn("normal").css("color", "#f3f3f3"); 

}} else { 

("label.input", this).hide(); 

}); 

有誰能幫我一個忙嗎?我有點放棄這一點,也許應該從更基本的東西開始。

在此先感謝!

問候,

Vegar Vallestad

編輯:

的HTML如下:

<div id="email_text"> 
<label class="input">Please leave a message..</label> 
<textarea name="message" id="email_text"><?php echo "</tex" . "tarea>"; ?> 
</div> 
+0

你能後置HTML?哦,你有幾個錯誤'}} else {'should be'} else {'然後'});'應該是'}});' – elclanrs 2012-02-12 19:26:55

回答

0
$("input, #email_text").on({ 
    focus: function() { 
     $("label.input", this).css("color", "#f3f3f3"); 
    }, 
    keyup: function() { 
     $("label.input", this).fadeOut(); 
    }, 
    blur: function() { 
     if($("#email_text").val() !="") { 
      $("label.input", this).css("color", "#f3f3f3").fadeIn(); 
     } else { 
      $("label.input", this).hide(); 
     } 
    } 
}); 
+0

謝謝你的回覆,我已經將html添加到原始問題。 當我嘗試你的答案adeneo時,我得到一個javascript錯誤消息:$(「input,#email_text」)。on不是函數 – 2012-02-12 23:07:54

+0

我已經閱讀了「$不是函數」,並從什麼我明白這是常見的?如果您在網站上使用多個庫。但我使用的唯一庫是jQuery,所以我不明白爲什麼會出現這個錯誤。除非它與PHP有什麼關係? – 2012-02-13 17:54:23

+0

我在jQuery論壇中發現了它,我使用的是1.6版本,當我應該使用1.7版本時,.on函數剛剛被添加並且未被1.6版本的腳本覆蓋。 – 2012-02-15 15:56:31