2013-07-23 2 views
1

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

+0

Место держатели (Либо версия HTML5 или скриптовых расширений) открыты, когда входной контроль * не имеет значения *. Поле –

+0

всегда будет иметь значение, присваивая значение при создании текстового поля - его форму редактирования. – Peter

ответ

3

Из того, что вы сказали here это звучит, как вы на самом деле хотите, чтобы слушать для фокуса и размытия событий и просто очистить содержимое <input> с каким-то кэшем, чтобы восстановить его, если ничто не набирается ,

<input id="foo" type="text" value="" data-value="" /> 

Затем в сценарии

var foo = document.getElementById('foo'); 
foo.addEventListener('focus', function() { 
    this.setAttribute('data-value', this.value); 
    this.value = ''; 
}); 
foo.addEventListener('blur', function() { 
    if (this.value === '') 
     this.value = this.getAttribute('data-value'); 
}); 

DEMO

2

условии, что вы беспокоитесь только с браузерами, которые поддерживают HTML5, следующий вариант:

<input type="text" name="myText" placeholder="My Placeholder"> 
+0

И если вы обеспокоены более старыми браузерами, в Интернете есть несколько полезных предложений для полиполков [здесь] (http://html5please.com/#placeholder) и [здесь] (https://github.com/Modernizr/Modernizr/вики/HTML5-Cross-Browser-Polyfills # веб-формы - вход-заполнители). Они добавят поддержку в более старые браузеры с нулевыми/минимальными изменениями в вашей разметке. – carpeliam

1

С одной стороны, это выполнимо; с другой стороны, я не уверен, зачем вам это нужно.

$('input[type="text"]').each(function (i, o) { 
    var inputBox = $(o), 
     swapInValue = function() { 
      inputBox.val(inputBox.data('val')); 
     }, 
     swapOutValue = function() { 
      inputBox.data('val', inputBox.val()).val(''); 
     }; 
    inputBox.blur(swapOutValue).focus(swapInValue); 
}); 
+0

делать это, потому что мне нравится, что с помощью пользователя-заполнителя можно просто начать вводить новое значение. Вместо того, чтобы сначала выбирать и удалять предыдущее значение. Sry, я такой OCD! позвольте мне попробовать ваш код. – Peter

+0

Да, с помощью заполнителя, пользователь может просто начать вводить новое значение. Однако вы запрашиваете, чтобы заполнитель был вынужден показать, даже если текстовое поле уже имеет значение. – Brian

+0

Да и поэтому я сделал «placeholder» равным «значению», – Peter

0
<input type="text" name="foo" placeholder="Foo Name"/> 
<input type="hidden" name="foo" value="foo"/> 
Смежные вопросы