Как установить пустой текст по умолчанию в поле ввода и очистить его, когда элемент активен.
Текст по умолчанию на входе
Ответ 1
В современных браузерах вы можете установить атрибут placeholder
в поле, чтобы установить его текст по умолчанию.
<input type="text" placeholder="Type some text" id="myField" />
Однако в старых браузерах вы можете использовать JavaScript для захвата событий фокуса и размытия:
var addEvent = function(elem, type, fn) { // Simple utility for cross-browser event handling
if (elem.addEventListener) elem.addEventListener(type, fn, false);
else if (elem.attachEvent) elem.attachEvent('on' + type, fn);
},
textField = document.getElementById('myField'),
placeholder = 'Type some text'; // The placeholder text
addEvent(textField, 'focus', function() {
if (this.value === placeholder) this.value = '';
});
addEvent(textField, 'blur', function() {
if (this.value === '') this.value = placeholder;
});
Демо: http://jsbin.com/utecu
Ответ 2
Использование событий onFocus
и onBlur
позволяет достичь этого, I.e.:
onfocus="if(this.value=='EGTEXT')this.value=''"
и
onblur="if(this.value=='')this.value='EGTEXT'"
Полный пример выглядит следующим образом:
<input name="example" type="text" id="example" size="50" value="EGTEXT" onfocus="if(this.value=='EGTEXT')this.value=''" onblur="if(this.value=='')this.value='EGTEXT'" />
Ответ 3
Объявить стили для неактивных и активных состояний:
.active {
color: black;
}
.inactive {
color: #909090;
}
Добавьте Javascript для обработки изменения состояния:
function toggleText(el)
{
var v = el.value;
//Remove text to allow editing
if(v=="Default text") {
el.value = "";
el.className = "active";
}
else {
//Remove whitespace
if(v.indexOf(" ")!=-1) {
split = v.split(" ").join("");
v = split;
}
//Change to inactive state
if(v=="") {
el.value = "Default text";
el.className = "inactive";
}
}
}
Добавьте поле ввода с установленным значением по умолчанию, набором классов inactive
и обработчиками Javascript, указывающими на функцию toggleText()
(вы можете использовать прослушиватели событий, чтобы сделать это, если хотите)
<input type="text" value="Default text" class="inactive" onFocus="toggleText(this);" onBlur="toggleText(this);">
Ответ 4
С точки зрения удобства использования текст во входном компоненте должен сохраняться только для целей ввода пользователя. Возможное значение по умолчанию на входе должно быть допустимым, если пользователь не отключился.
Если текст-заполнитель предназначен для подсказки о том, как заполнить вход, лучше поместить его рядом с вводом, где его можно увидеть и при заполнении ввода. Более того, использование текста-заполнителя внутри текстовых компонентов может вызвать проблемы, например. с устройствами Брайля.
Если используется текст-заполнитель, независимо от принципов удобства использования, следует убедиться, что это делается ненавязчиво, так что он работает с пользовательскими агентами без javascript или когда js отключен.
Ответ 5
Или просто
<input name="example" type="text" id="example" value="Something" onfocus="value=''" />
Это сообщение не будет удалять текст по умолчанию после удаления поля, но также позволит пользователю очистить поле и увидеть все результаты в случае автозаполнения script.
Ответ 6
Я нашел плагин jQuery (http://www.jason-palmer.com/2008/08/jquery-plugin-form-field-default-value/) и использую его:)
Ответ 7
То, что я сделал, помещает атрибут placeholder для современных браузеров:
<input id='search' placeholder='Search' />
Затем я сделал резерв для старых браузеров с помощью JQuery:
var placeholder = $('search').attr('placeholder');
//Set the value
$('search').val(placeholder);
//On focus (when user clicks into the input)
$('search').focus(function() {
if ($(this).val() == placeholder)
$(this).val('');
});
//If they focus out of the box (tab or click out)
$('search').blur(function() {
if ($(this).val() == '')
$(this).val(placeholder);
});
Это работает для меня.
Ответ 8
Вы можете использовать этот плагин (я соавтор)
https://github.com/tanin47/jquery.default_text
Он клонирует поле ввода и помещает его туда.
Он работает на IE, Firefox, Chrome и даже iPhone Safari, который имеет известную проблему с фокусом.
Таким образом, вам не нужно беспокоиться об очистке поля ввода перед отправкой.
ИЛИ
Если вы хотите только HTML5, вы можете просто использовать атрибут "placeholder" в поле ввода
Ответ 9
Вы можете использовать атрибут placeholder.
нп. <input type="text" name="fname" placeholder="First name">
проверьте http://www.w3schools.com/tags/att_input_placeholder.asp