基本的javascript功能不起作用

时间:2012-02-04 18:24:37

标签: javascript

我希望我的脚本在用户点击它时检查textarea框,并且它的值是否为“在此添加其他信息!”使框变为空白并将文本颜色更改为#000。它最初是灰色的。

的javascript

function changeMessage() {
    if(this.value=='Add additional information here!') 
            {this.value='';this.style.color='#000';}
}

HTML

<textarea name="message" id="message_input" rows="4" cols="21" maxlength="200"
            onfocus="changeMessage();" 
            onblur="changeMessageBack();"
            >Add additional information here!</textarea>

3 个答案:

答案 0 :(得分:2)

changeMessage()的上下文中,this未引用您的文字区域。尝试传入文本区域对象,如下所示:

<强> JS:

function changeMessage(obj) {
    if(obj.value=='Add additional information here!') {
        obj.value='';
        obj.style.color='#000';
    }
}

<强> HTML

<textarea name="message" id="message_input" rows="4" cols="21" maxlength="200"
            onfocus="changeMessage(this);" 
            onblur="changeMessageBack(this);"
            >Add additional information here!</textarea>

这是a working fiddle来演示。

其他信息:

答案 1 :(得分:2)

当您在全局范围内调用changeMessage()时,this引用window对象,而您可以通过use {{{{}}告诉运行时为函数调用提供的值。 3}}

onfocus="changeMessage();"更改为onfocus="changeMessage.call(this);"

答案 2 :(得分:1)

您也可以使用不带javascript的占位符属性:

<input type="text" name="the_name" placeholder="Add additional information here!">