0

我有一个如下所示的输入框,

<input id="basic-search" type="text" value="Enter keyword or phrase" title="basic-search" class="form-text" size="38" onclick = "this.className = 'focused'; javascript:Reset();" onblur = "javascript:Reset();" />

.focused 和 form-text 的 css 是,

.focused {
color:black;
}

.form-text
{
    background-color: #FFF;
    color: #CCC;
}

加载时输入框的内容是“输入关键字或短语”,最初是灰色的。单击此框并在输入错误时字体颜色变为黑色(效果很好)。当删除内容时,选项卡到下一个字段或在鼠标上按内容“输入关键字或短语”变为黑色。它应该仍然是灰色的。我应该在css中做些什么改变?任何投入都会有所帮助。谢谢。

注意:我注意到 stackoverflow 中的“标题”字段可以正常工作。我希望我的 boc 以同样的方式工作。

4

3 回答 3

2

使用 onfocus 而不是 onclick。此外,对于您的 onblur,请附加 css 类:

jsFiddle:http: //jsfiddle.net/QybRX/14/

<input id="basic-search" type="text" value="Enter keyword or phrase" title="basic-search" class="form-text" size="38" onfocus="this.value=''; this.className = 'focused'; javascript:Reset();" onblur = "basicSearch()" />
<input type="text"/>

<script>    
    function basicSearch()
    {
        var element = document.getElementById("basic-search");

        if ( element.value.length == 0 )
        {
            element.value = 'Enter keyword or phrase';
            element.className = 'form-text';
        }
        else
        {
            element.className = 'focused';
        }

        javascript:Reset();
    }
</script>
于 2012-04-30T14:02:18.407 回答
0

发生的事情是,当用户单击它时,您将“聚焦”类添加到输入字段,但该类永远不会被删除。您要么需要删除类 onblur,要么切换到使用:focusCSS 中的选择器,如下所示:

.form-text
{
  background-color: #FFF;
  color: #CCC;
}

#basic-search:focus
{
  color: black;
}
于 2012-04-30T14:00:04.317 回答
0

您是否试图模仿HTML5 占位符属性?如果是这样,您可能想看看这篇文章

于 2012-04-30T14:02:38.967 回答