Onclick文本在chrome中消失,但在mozilla中消失

时间:2010-10-08 12:47:05

标签: textbox full-text-search onclick cross-browser

我的应用中有搜索功能,当用户点击文本框时,   文本框中的文本消失了。这在chrome(6.0)中完美运行,但在点击mozilla firefox(3.6)之后不会消失为什么?

//这是代码:

echo "Search: ";
            echo "<input type=\"text\" class=\"smalltxt\" name= \"srchtxt\" id= \"srchtxt\" value= \"enter username\" height=\"20px\" onfocus= \"javascript:areaOnFocus(srchtxt, 'enter username');\" onblur= \"javascript:areaOnBlur(srchtxt, 'enter username');\" />";  

//函数调用:

function areaOnFocus(element, inputText)
    {
         if(element.value == inputText)
         {
              element.value='';
         }
    }

    function areaOnBlur(element, inputText)
    {
         if(element.value=='')
         {
              element.value = inputText;
         }
    }

提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先,内联事件处理程序中不需要javascript: 其次,尝试传递this而不是srchtxt作为两个函数的第一个参数 仅传递srchtxt可能会导致浏览器找到具有指定name的元素,但如果我记得很清楚,这在Firefox中不起作用。
最终代码应如下所示:

echo "<input type=\"text\" class=\"smalltxt\" name= \"srchtxt\" id= \"srchtxt\" value= \"enter username\" height=\"20px\" onfocus= \"areaOnFocus(this, 'enter username');\" onblur= \"areaOnBlur(this, 'enter username');\" />";  

编辑: @down:这是不可能的,因为我尝试了以下代码:

<html>
<head>
<script type="text/javascript">
function areaOnFocus(element, inputText)
{
    if(element.value == inputText)
    {
        element.value='';
    }
}

function areaOnBlur(element, inputText)
{
    if(element.value=='')
    {
        element.value = inputText;
    }
}
</script>
<title>test</title>
</head>
<body>
<input type="text" class="smalltxt" value="enter username" height="20px" onfocus="areaOnFocus(this, 'enter username');" onblur="areaOnBlur(this, 'enter username');" />
</body>
</html>

在我的Firefox 3.6.10中运行良好 - 当页面加载时,输入的值为“输入用户名”。当我点击它时,文字消失了。当我离开场地并移除焦点时,“输入用户名”再次出现在其中。所以......