Текст по умолчанию при вводе

Заменить {} на (( )):

tmpstart=0;
tmpend=4;

for (( i=$tmpstart; i<=$tmpend; i++ )) ; do 
echo $i ;
done

Выход:

0
1
2
3
4
29
задан Jaro 9 July 2009 в 09:50
поделиться

9 ответов

В современных браузерах вы можете установить атрибут 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

69
ответ дан Paul Roub 9 July 2009 в 09:50
поделиться

Я нашел плагин jQuery ( http://www.jason-palmer.com/2008/08/jquery-plugin-form-field-default-value/ ) и использую его:)

1
ответ дан Jaro 9 July 2009 в 09:50
поделиться

Объявите стили для неактивных и активных состояний:

.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);">
3
ответ дан Alex Rozanski 9 July 2009 в 09:50
поделиться

Или просто

<input name="example" type="text" id="example" value="Something" onfocus="value=''" />

Это не отправит обратно текст по умолчанию после очистки поля, но также позволит пользователю очистить поле и увидеть все результаты в случае сценария автозаполнения.

3
ответ дан montrealmike 9 July 2009 в 09:50
поделиться

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

Если подстановочный текст предназначен для подсказки о том, как заполнить ввод, лучше располагаться рядом со входом, где его можно увидеть и после заполнения ввода. Кроме того, использование текста-заполнителя внутри текстовых компонентов может вызвать проблемы, например, с брайлевскими устройствами.

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

2
ответ дан Jawa 9 July 2009 в 09:50
поделиться

Использование событий onFocus и onBlur позволяет вам достичь этого, т.е.:

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'" />
14
ответ дан Kyle Rozendo 9 July 2009 в 09:50
поделиться

Что я сделал, так это поместил атрибут-заполнитель для современных браузеров:

<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);
});

Это работает для меня.

1
ответ дан Kevin 9 July 2009 в 09:50
поделиться

Вы можете использовать атрибут заполнителя.
нп. <input type="text" name="fname" placeholder="First name">
отметьте http://www.w3schools.com/tags/att_input_placeholder.asp

0
ответ дан user2464189 9 July 2009 в 09:50
поделиться

Вы можете использовать этот плагин (я соавтор)

https://github.com/tanin47/jquery.default_text

Он клонирует поле ввода и поместите его туда.

Он работает на IE, Firefox, Chrome и даже iPhone Safari, который имеет известную проблему фокусировки.

Таким образом, вам не нужно беспокоиться об очистке поля ввода перед отправкой.

ИЛИ

Если вы хотите использовать только HTML5, вы можете просто использовать атрибут «заполнитель» в поле ввода

0
ответ дан Tanin 9 July 2009 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: