Событие onBlur Javascript с проверкой, имеет ли элемент фокус

Я пытаюсь найти решение простой вещи, которая выглядит сложной!

У меня есть текстовое поле, где пользователи могут обновлять свой статус. Под ним у меня есть флажок (например, чтобы пользователь мог выбрать твитить статус или нет).

Что я пытаюсь сделать, так это: 1/Когда textera получает фокус, текстовая область расширяется, для этого все в порядке.

2/Когда текстовая область теряет фокус, поэтому, когда пользователь выходит из нее, она рушится. Это тоже хорошо...

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

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

Я создал пример на этой странице: http://favosaurus.com/dev/onblur.php

спасибо за ваши предложения.


person kire    schedule 17.08.2010    source источник
comment
Ваша ссылка просто пустая страница. Я хоть onblur имел в виду, что элемент потерял фокус? Если пользователь щелкнет за пределами элемента, он потеряет фокус.   -  person Michael Robinson    schedule 17.08.2010
comment
@Майкл Робинсон, но он хочет, чтобы текстовая область ПРИТЯЖАЛА, что она не потеряла фокус (и, предположительно, снова вернула фокус), если и только если флажок установлен   -  person David Tang    schedule 17.08.2010
comment
Извините, у меня была проверка сеанса на этой странице, я удалил ее, чтобы она могла быть доступна любому. Все еще не понял, что это довольно просто и сложно одновременно... Лучше всего посмотреть пример. Когда пользователь вводит текст, текстовое поле расширяется. Отлично. Если есть какие-то тексты, и пользователь щелкает снаружи, текстовая область не сворачивается. Тоже хорошо. Он рушится, только если текстовое поле пусто... но проблема в том, что если оно пусто, но пользователь нажимает на флажок, оно не должно рушиться :)   -  person kire    schedule 21.08.2010


Ответы (1)


Вам нужно будет использовать Javascript.

Псевдокод:

if input blur,  and checkbox not clicked:

     do normal blur action.

else:

     process checkbox click
     focus input again
person Michael Robinson    schedule 17.08.2010
comment
Учитывает ли это тот факт, что событие размытия в текстовом поле происходит до события фокуса в флажке? - person Kev; 17.08.2010