Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Можно ли одновременно изменить фон и текст в поле? (https://javascript.ru/forum/events/1835-mozhno-li-odnovremenno-izmenit-fon-i-tekst-v-pole.html)

Bad Request 23.09.2008 15:27

Можно ли одновременно изменить фон и текст в поле?
 
Здравствуйте. Есть форма для ввода текста.
<form>
<input type="text" onfocus="this.style.background='#FFF0C6'" onblur="this.style.background=''"/>
<p>
<textarea cols="40" rows="10" onfocus="this.style.background='#FFF0C6'" onblur="this.style.background=''">
</textarea>
</p>
</form>

Можно ли при событии onfocus изменить не только цвет фона поля, но еще и стиль текста одновременно? Если да, то как?

SunnyDay 23.09.2008 15:28

Стандартным элементом textarea - нет, но можно написать свой.

ZoNT 23.09.2008 15:37

textarea.onfocus = function() {
  this.style.fontStyle = "italic";
  this.style.color = "red";
  this.style.fontWeight = "bold";
}

SunnyDay 23.09.2008 15:42

Упс, я подумал что нужны разные стили для разных текстовых выражений в текстареа.

Bad Request 23.09.2008 16:42

Спасибо, ZoNT! Я должен вам море бухла.
Скажите, а можно написать универсальную функцию, чтобы она меняла фон и текст при обращении к любому полю в форме?

ZoNT 23.09.2008 16:55

можно. Только я занят и писать не хочу :)
И ещё: я не пью :)

Bad Request 23.09.2008 17:11

Ладно, буду сам ковырять.
Не пьете? А я вас научу. Вы меня кодировать, а я вас злоупотреблять.

ZoNT 23.09.2008 17:16

Дык я уже третий год как завязал..

Gvozd 24.09.2008 22:38

Цитата:

Сообщение от Bad Request
Скажите, а можно написать универсальную функцию, чтобы она меняла фон и текст при обращении к любому полю в форме?

<form>
<input type="text" onfocus="this.style.background='#FFF0C6'" onblur="this.style.background=''"/>
<p>
<textarea cols="40" rows="10" onfocus="set_style(style)" onblur="this.style.background=''">
</textarea>
</p>
</form>

function set_style(obj) {
  obj.style.fontStyle = "italic";
  obj.style.color = "red";
  obj.style.fontWeight = "bold";
}

Bad Request 24.09.2008 23:11

Весьма признателен, Gvozd! А ведь не зря говорят, что пьющие люди добрее! Только так, как вы написали, не пашет:
<textarea cols="40" rows="10" onfocus="set_style(style)">

Так пашет:
<textarea cols="40" rows="10" onfocus="set_style(this)">

А как же мне сделать, чтобы при событии onblur шрифт и цвет фона опять становились по умолчанию?
Я написал еще одну функцию:
<textarea cols="40" rows="10" onfocus="set_style(this)" onblur="rst(this)">

function rst(obj) 
{
	obj.style.fontStyle = "";
  obj.style.color = "";
  obj.style.fontWeight = "";
}

Есть более умный способ?


Часовой пояс GMT +3, время: 14:25.