2012-03-19 3 views
9

Я понятия не имею, почему это не работает, но я уверен, что это очень распространенный бит javascript. Мой синтаксис явно отсутствует, и я не знаю почему:JQuery: пустое поле ввода onclick

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" /> 

Спасибо!

ответ

14

Ваш вопрос с этой строки кода:

$(this).val() = '' 

Правильный способ установить значение в JQuery является:

$(this).val("Your value here"); 

Кроме того, встроенный JS никогда не является хорошей идеей. Используйте вместо этого:

$("#search").on("click", function() { 
    if ($(this).val() == "search") 
     $(this).val("") 
});​ 

Вот a working fiddle.

Ссылки: jQuery .val()

+2

Совершенство. Благодаря! –

0

Вам не нужно $ (this) .val (""); или $ (this) .val (''); опустошить его

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" /> 
+1

+1 Работало отлично. Благодаря! –

4

Поместите это в отдельный файл JS ...

это вернет его к исходному значению, если ничего не будет введен после того, как он теряет фокус.

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

    $("#search").blur(function() { 
     if ($(this).val()=="") { 
      $(this).val('search'); 
     } 
    }); 
}); 
+0

Это тоже здорово, я на самом деле написал тот же код после ответа Джеймса. Спасибо хоть! –

-2
function search(textBox) 
{ 
    if($(textBox).val() == 'search') { 
     $(textBox).val() = ''; 
    } 
    return false; 
} 

<input type="text" value="search" id="search" name="q" onclick="return search();" /> 

Попробуйте это и отладки.

2
$(this).val() = ''; 

должен быть

$(this).val(''); 

См .val() документацию.

2

Это должно быть так:

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" /> 

correct way : $this.val(''); 
incorrect way : $this.val() = ''; 
1

Это стало проще с HTML5 Закончен Место:

<input type="text" name="search" placeholder="Enter your search query here"> 

Это не поддерживается в старых браузерах, но если вы только против современных, вы должны быть в порядке: http://caniuse.com/#feat=input-placeholder

+0

Атрибут placeholder делает это намного проще (если ваш браузер поддерживает его), но вам следует избегать просто публикации ссылок в качестве ответов. Ссылки имеют тенденцию к гниению и исчезновению. Основное содержание должно быть опубликовано в вашем ответе. –

+0

Hi Chuck, tx для обратной связи. Я обновил свой ответ. – Jarown

Смежные вопросы