我的应用中有搜索功能,当用户点击文本框时, 文本框中的文本消失了。这在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;
}
}
提前谢谢。
答案 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中运行良好 - 当页面加载时,输入的值为“输入用户名”。当我点击它时,文字消失了。当我离开场地并移除焦点时,“输入用户名”再次出现在其中。所以......