Firefox: потерять фокус при очистке значения текстового поля - PullRequest
0 голосов
/ 16 октября 2011

У меня есть окно поиска (текстовое поле), и я хочу очистить его содержимое, когда щелкну внутри. (какой-то водяной знак. В этом случае контроль водяного знака мне не подошел). Я использую событие onKeyDown для очистки содержимого:

 function clearTbSearch(tbSearch) {

        if (tbSearch != null && tbSearch.value == '<%= TypeHereText %>') {

            tbSearch.value = "";


            tbSearch.style.color = "#000000";

        }
        return true;
    }

Он отлично работает в IE и Chrome, но в Firefox требуется 3 (!!!) клика, чтобы сфокусироваться. Первый клик ничего не делает. Второй очищает текстовое поле, но не фокусируется. Третий щелчок позволяет сфокусировать курсор. Я пытался что-нибудь ... Я был бы рад за любые предложения ... Спасибо !!!

Ответы [ 2 ]

1 голос
/ 16 октября 2011

Вы можете попробовать это, чтобы он выглядел чище:

<input type="text" name="myInput" value="Your initial trademark" onfocus="this.value=''" />
1 голос
/ 16 октября 2011

Нет необходимости использовать onkeydown событие, просто используйте вместо него общий onfocus:

var firstTime = true;
window.onload = function() {
    var input = document.getElementById("MyInput");
    input.onfocus = function() {
        if (!firstTime)
            clearTbSearch(this);
        firstTime = false;
    };
    input.focus();
};

Таким образом, он будет работать либо с помощью клавиатуры, либо мыши, например. при нажатии на текстовое поле.

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