2010-09-27 4 views
9

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

КОДЕКСА

<input type="text" name="kp1_description" value="Enter Keypress Description"> 
+0

это не ответ, но в будущем это будет http://dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute – Galen

+0

Возможный дубликат [Удалить значение по умолчанию для ввода текста on click] (http://stackoverflow.com/questions/2984311/delete-default-value-of-an-input-text-on-click) – ripper234

ответ

15
$(document).ready(function(){ 
    var Input = $('input[name=kp1_description]'); 
    var default_value = Input.val(); 

    Input.focus(function() { 
     if(Input.val() == default_value) Input.val(""); 
    }).blur(function(){ 
     if(Input.val().length == 0) Input.val(default_value); 
    }); 
})​ 

Это должно сделать это.

Обновлено, забывали, что фокус не имеет 2-й параметр для фокусировки-аута, потому что его нет, он должен быть прикован с размытием:

http://jsfiddle.net/hDCsZ/

вы также должны думать о создании Вашего собственные функции для этого, таких как:

$.fn.ToggleInputValue = function(){ 
    return $(this).each(function(){ 
     var Input = $(this); 
     var default_value = Input.val(); 

     Input.focus(function() { 
      if(Input.val() == default_value) Input.val(""); 
     }).blur(function(){ 
      if(Input.val().length == 0) Input.val(default_value); 
     }); 
    }); 
} 

Затем используйте как так

$(document).ready(function(){ 
    $('input').ToggleInputValue(); 
})​ 
+0

Значение не возвращается, если ничего не было введено.hmm .. – user342391

+0

Обновлено, Дайте мне знать, если это сработает. – RobertPitt

+0

странный еще ничего – user342391

7

Не делать это таким образом. Использовать сценарий водяных знаков jQuery: http://code.google.com/p/jquery-watermark/

$("input[name='kp1_description']").watermark("Enter Keypress Description");

Есть много вещей, которые вам нужно учитывать, если вы делаете это вручную. Например, что происходит, когда текстовое поле теряет фокус? Если нет никакой ценности, вы бы хотели прочитать свой вспомогательный текст. Если есть, вы хотели бы отметить эти изменения.

Просто легче позволить другим людям делать тяжелую :)

+0

, но использование целой библиотеки для простой задачи - не лучшая идея. – RobertPitt

+2

Правда, я просто считаю, что это колесо не нужно заново изобретать. Существует множество сценариев, которые вы должны учитывать, и использование библиотеки может упростить это. Он отметил свой вопрос с помощью jQuery, поэтому использование плагина jQuery, вероятно, является наиболее прагматичным способом выполнения этой задачи. – clifgriffin

+0

+1 для повторного использования кода. Некоторые проблемы сложны и должны быть решены библиотекой, а не переделаны плохо всякой обезьяной кода на планете. Люди особенно плохо относятся к этому, когда дело доходит до javascript. – Sorpigal

6

С HTML5 вы можете сделать это без Javascript: просто используйте placeholder вместо value. Я думаю, что это приятное дополнение, но, конечно, сначала вам нужно проверить совместимость браузера.

0

HTML:

<form method="post"> 
    <input type="text" id="customer" value="Username"/>  
    <input type="Submit" value="Login" class="rc" /> 
</form> 

код Javascript:

<script> 
$('#customer').on({ 
    focus:function(){     
     if(this.value == 'Username') this.value = ''; 
    }, 
    blur:function(){ 
     if(this.value == '') this.value = 'Username'; 
    } 
}) 
</script> 

Вот и все, я надеюсь, что это поможет.

1

var defaultForInput = "abc";

<input id="myTextInput" type="text" placeholder=defaultForInput />


При отправке формы, проверьте, если вход (= идентификатор "myTextInput") значением является 'пустая строка', если так заменить его (defaultForInput) ,

3
$('input, textarea').each(function() { 
    var Input = $(this); 
    var default_value = Input.val(); 

    Input.focus(function() { 
     if(Input.val() == default_value) Input.val(""); 
    }).blur(function(){ 
     if(Input.val().length == 0) Input.val(default_value); 
    }); 
}); 
1

Супер пупер Короткая версия

$('#input_id').focus(function() { 
    $(this).val(""); 
}); 
3
<input type="text" id="anything" placeholder="enter keypress description"> 

я думаю, что это поможет

0

Plain JavaScript:

(function() { 
    let input = document.querySelector ("input[name='kp1_description']"); 
    input.onfocus = function() { 
    this.placeholder = this.value; 
    this.value = ''; 
    }; 
})(); 

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

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