2012-04-23 2 views
2

У меня есть следующий код:Re-установки значения поля с JQuery

$('#name1').focus(function() { 
    if ($(this).val() == 'start value') { 
     console.log($(this).val()); // this prints "start value" 
     $(this).val() == '' 
    } 

То, что я пытаюсь сделать, когда пользователь фокусируется на ввод текста #name1, значение поля исчезнет. Однако приведенное выше ничего не делает, и текстовое значение остается неизменным. Почему это происходит и что мне нужно изменить?

+1

Мне кажется, что вы пытаетесь создать местозаполнитель ... если да, почему бы просто не использовать атрибут «placeholder» HTML5 и один из существующих существующих [polyfills] (https://github.com /jamesallardice/Placeholders.js)? –

ответ

5
$('#name1').focus(function() { 
    if ($(this).val() == 'start value') { 
     console.log($(this).val()); // this prints "start value" 
     $(this).val(""); 
    } 

Вы должны написать назначая значение в скобках как этот $(this).val("");

0

Чтобы присвоить значение использовать val это следующим образом:

$(this).val(''); 
1

this.val() это функция, которая должна быть вызвана как $(this).val('new value') установить Значение.

0

Вместо $(this).val() == '' попробовать $(this).val('');

0

Почему бы не использовать атрибут html5 заполнитель с чем-то вроде Modernizr для поддержки старых браузеров, что путь ваш не писать дерьмо тонны тех функций, которые вы вместо того, чтобы можно было просто сделать заполнитель =» ваш текст "и добиться того же эффекта.