2012-02-12 70 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