Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2010, 14:50
Новичок на форуме
Отправить личное сообщение для Teledrug Посмотреть профиль Найти все сообщения от Teledrug
 
Регистрация: 17.05.2010
Сообщений: 5

Проблема с onselect/onblur
Необходимо сделать форму поиска при выборе которой отображается поисковая кнопка, а при потере фокуса кнопка убирается. Одновременно с этим меняется размер картинки, чтобы дать место кнопке.

Есть поисковая форма и над ней картинка:
<img id="rss" src="/img/rss.gif" alt="RSS" width="200" height="78" border="0" />
<form id="search" action="">
	<input id="searcquery" name="query" type="text" value="Что искать?" onfocus="showSearchButon(this)" onblur="hideSearchButton()" /><br />
	<input id="searchbutton" type="submit" value="Поиск" />
</form>

При выборе строки поиска выполняется следующий код:
/* Предварительно была загружена картинка img['rss_small'] 
#searchbutton - display: none*/
function showSearchButon (obj) {
	obj.value='';
	var image=document.getElementById('rss');
	img['rss']=image;
	image.height=50;
	image.src=img['rss_small'].src;
	document.getElementById('searchButton').style.display='inline';
}

При потере фокуса выполняется функция:
function hideSearchButton () {
	document.getElementById('rss').height=78;
	document.getElementById('rss').src=img['rss'];
	document.getElementById('searchButton').style.display='none';
}

Вся проблема в том, что если попытаться нажать на кнопку searchbutton она скрывается. Возможно ли сделать событие по потере фокуса со всей формы или как-то по другому решить проблему.
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2010, 15:03
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Teledrug
Необходимо сделать форму поиска при выборе которой отображается поисковая кнопка, а при потере фокуса кнопка убирается.
Разве нормальный человек способен придумать такое? Мне непонятно, почему на чушь у тебя время было, а поэкспериментировать и найти нормальное решение - нету???
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2010, 15:32
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

При клике на кнопку выполнять ту же функцию, что выполняется при получении полем фокуса.
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2010, 17:35
Новичок на форуме
Отправить личное сообщение для Teledrug Посмотреть профиль Найти все сообщения от Teledrug
 
Регистрация: 17.05.2010
Сообщений: 5

Сообщение от exec Посмотреть сообщение
При клике на кнопку выполнять ту же функцию, что выполняется при получении полем фокуса.
Клика по кнопке вообще не происходит - она исчезает раньше.

Это не чушь. Sweet если нечего сказать дельного - не пиши.
Ответить с цитированием
  #5 (permalink)  
Старый 16.08.2010, 18:07
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Есть ещё такой вариант: присваиваем полю onfocus, onblur убираем вообще. Вешаем на document обработчик onclick, каждый раз смотрим event.target, если это не кнопка, то скрываем поле.
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2010, 18:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Самое смешное, что мне есть что сказать, просто я не хочу
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2010, 08:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Teledrug
Возможно ли сделать событие по потере фокуса со всей формы или как-то по другому решить проблему.
Фокус не может быть одновременно в двух местах, соответственно он сначала уходит из одного места, потом приходит в другое. При этом в невидимый элемент он прийти не может. Т.е. если даже и считать фокус общим для формы, он всё равно сначала уйдёт с одного элемента, а значит и с формы, а потом вернётся на форму, если будет куда возвращаться.

Идея так себе, да.
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2010, 13:23
Новичок на форуме
Отправить личное сообщение для Teledrug Посмотреть профиль Найти все сообщения от Teledrug
 
Регистрация: 17.05.2010
Сообщений: 5

Сообщение от exec Посмотреть сообщение
Есть ещё такой вариант: присваиваем полю onfocus, onblur убираем вообще. Вешаем на document обработчик onclick, каждый раз смотрим event.target, если это не кнопка, то скрываем поле.
Именно так и сделал, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47