jQuery语法问题 - 模糊+焦点问题

时间:2012-01-11 11:24:57

标签: 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:" />

2 个答案:

答案 0 :(得分:1)

$(this).val

应改为:

$(this).val()

因为它是一种方法(而不是属性)。

Your code, fixed.

此外,请考虑使用'placeholder' attribute并在不支持JavaScript的浏览器中使用JavaScript。

答案 1 :(得分: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