Во-первых, вам не нужно 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, и он работал хорошо - когда страница загрузилась, значением ввода было «введите имя пользователя». Когда я щелкнул по нему, текст исчез. И когда я оставил поле пустым и убрал фокус, в нем снова появилось «введите имя пользователя». Итак ...