Текст на клавиатуре исчезает в Chrome, но не в Mozilla - PullRequest
0 голосов
/ 08 октября 2010

У меня есть функция поиска в моем приложении, в которой, когда пользователь щелкает текстовое поле, текст в текстовом поле не работает.Это прекрасно работает в 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 Ответ

1 голос
/ 08 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...