Jquery возвращает значение по умолчанию при фокусировке - PullRequest
1 голос
/ 16 декабря 2010

У меня есть поисковый ввод со значением по умолчанию "Поиск".

alt text

Когда я фокусируюсь на вводе, значение очищается.

$(document).ready(function(){
    $('#search').focus(function() {           
        if($(this).val() == "Search for") 
        $(this).val('');
    });
});

Если вы ничего не вводите для поиска, какой будет хороший способ вернуть значение по умолчанию "Поиск" при фокусировке?

Ответы [ 4 ]

2 голосов
/ 16 декабря 2010

Вот небольшой код для вас.Он будет использовать метод данных jQuery для сохранения логического значения, указывающего, что пользователь что-то набрал.Если человек ничего не печатает, он снова отобразит текст.

$("#search").blur(function() {
    if (!$(this).data('hasTyped')) {
        $(this).val('Search for');
    }
}).keyup(function() {
    $(this).data('hasTyped', this.value.length);
}).focus(function() {
    if (!$(this).data('hasTyped')) {
        $(this).val('');
    }
});

Пример: http://jsfiddle.net/jonathon/dbbBh/

1 голос
/ 16 декабря 2010

Почему бы не использовать плагин водяных знаков , если вы уже используете jQuery? Зачем нужен изобретенный велосипед?

Если вы должны сделать это самостоятельно,

$(document).ready(function(){
    $('#search').focus(function() {           
        if($(this).val() == "Search for") 
        $(this).val('');
    }).focusout(function() {
      if($(this).val() === '')
         $(this).val('Search for');
    });
});
1 голос
/ 16 декабря 2010

А как же, но "перевернутый"?

$('#search').blur(function() {
    if($(this).val() == "" ) { 
        $(this).val('Search for');
    }
});
1 голос
/ 16 декабря 2010

как насчет использования focos out

$("#search").focusout(function() {
$(this).val('Search for');
});

или размытие

    $('#search').focus(function(){
// focus logic goes here


}).blur(function(){

  $(this).val('Search for');

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