将默认值添加到文本框

时间:2011-07-11 22:29:56

标签: javascript jquery forms textarea default-value

我使用以下脚本将默认值添加到输入文本框:

$('.default-value').each(function() {
    var default_value = this.value;
    $(this).css('color', '#746F66'); // this could be in the style sheet instead
    $(this).focus(function() {
        if(this.value == default_value) {
            this.value = '';
            $(this).css('color', 'black');
        }
    });
    $(this).blur(function() {
        if(this.value == '') {
            $(this).css('color', '#746F66');
            this.value = default_value;
        }
    });
});

使用以下表格:

<form method="post" action="contactengine.php">
    <input type="textbox" class="default-value" name="Name" id="Name" value="Full Name">

    <input type="textbox" class="default-value" name="Email" id="Email" value="Email">

    <textarea name="Message" class="default-value" name="Message" id="Message" value="Your message"></textarea>

    <input type="submit" name="submit" id="submit" value="Submit" class="submit-button" />
</form>

默认值适用于文本框,但我无法弄清楚如何将默认值输入textarea。目前在textarea中没有任何内容出现,正如您可以看到here

有人可以帮忙吗?

谢谢,

尼克

1 个答案:

答案 0 :(得分:2)

尝试更改此行:

var default_value = this.value;

要:

var default_value = $(this).val();

这是因为textarea没有value属性,要为此元素指定默认文本,将文本放在元素的开始和结束标记之间,就像这样:

<textarea name="Message" class="default-value" name="Message" id="Message">Your message.</textarea>

JS Fiddle demo

<小时/> 在Chromium 12 / Ubuntu 11.04中进行测试后,已编辑,发现就JavaScript而言(至少对于此浏览器/平台而言)var default_value = this.value;可以分配default_value正确。

JS Fiddle demo