使用jquery在input和textarea中隐藏/显示标签

时间:2012-02-12 19:24:11

标签: jquery input label show-hide

我正在尝试使用输入和textarea标签隐藏/显示功能,但我的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>

1 个答案:

答案 0 :(得分: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();
        }
    }
});