2013-03-11 2 views
1

У меня есть простой код, который я пытаюсь вставить на свой сайт, чтобы очистить текстовое поле со значением по умолчанию, когда пользователь нажимает на него, значение по умолчанию должно очищаться, чтобы пользователь может ввести свое значение. Вот что у меня есть, но я не уверен, правильно ли он с тех пор, как он не работает. Я только начал на JQueryОчистить поле ввода при щелчке с помощью JQuery

$(document).ready(function() 
    { 
     $('#startDateBox').click(function() 
     { 
      if(('#startDateBox')=='Beginning') 

      { 
      $('#startDateBox').val(''); 
      } 

     }) 
    });​ 
+0

Можете ли вы определить, что «не работает»? –

+0

Ну, 'if (('# startDateBox') == 'Beginning')' будет * always * быть false ... – Chad

+0

Когда я его отлаживаю, когда я нажимаю в поле, он не очищает значение по умолчанию , который является словом «Начало». Я чувствую, что у меня что-то отсутствует в моем коде –

ответ

3

Вы пропустили первые .val() и $ перед ('#startDateBox') на той же строке. Вы также можете использовать $(this) для ссылки на текстовое поле, так как внутри этой функции this относится к самому элементу DOM текстового поля. Обертка с помощью функции jQuery $() дает вам доступ ко всем преимуществам фреймворка.

$(document).ready(function() 
{ 
    $('#startDateBox').click(function(){ 
     if($(this).val() == 'Beginning') 
       ^^^^^^ Here 
     { 
      $(this).val(''); 
     } 
    }) 
});​ 
+1

и отсутствует '' 'в этой строке –

+0

@IswantoSan правильно, спасибо – BinaryTox1n

3

Вы ошибаетесь в этой части:

if(('#startDateBox')=='Beginning') 

Во-первых, отсутствует $. Во-вторых, я думаю, вы хотите сравнить значение startDateBox, а затем использовать val().

Попробуйте это:

$(document).ready(function() 
    { 
     $('#startDateBox').click(function() 
     { 
      if($('#startDateBox').val()=='Beginning') 
      { 
      $('#startDateBox').val(''); 
      } 
     }) 
    });​ 
0

Я хотел бы предложить для HTML5 браузеров используют этот

<input type="text" id="Beginning" placeholder="Beginning" /> 

if($('#startDateBox').val() =='Beginning') 

это линия, которая должна быть изменена

также

 $('#startDateBox').on("focus", function() 
     { 
      // code here 

щелчок будет не обрабатывайте удары, пока это текстовое поле не сфокусировано

+0

Отсутствует '' 'тоже. –

+0

исправлено, атрибут placeholder обрабатывает все это для вас, а также в новых браузерах –

0

Ну if(('#startDateBox')=='Beginning') будет всегда быть ложным ...

Я думаю, что вы имели в виду что-то подобное:

if($('#startDateBox').val() == 'Beginning') 
0

Я написал очень маленький JQuery плагин для этой цели в последнее время:

https://gist.github.com/rmcvey/5136582

$('#input').placeholder("Placeholder Text"); 

if($('#input').val() === $('#input').placeholder()){ return false; } 
Смежные вопросы