Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фокусировка input, установка фокуса в элемент 
:(
    Опции темы
sinij
  Дата 26.12.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.10.2005
Где: Украина, Киев

Репутация: нет
Всего: нет



Есть страница с использованием Ajax (простая таблица)
когда щелкаем по ячеке то появляется текстовое поле и как передать фокус в это текстовое поле
простой метод focus() в конце всего кода не помогает (объект input появляется позже) 
PM MAIL WWW   Вверх
Sardar
Дата 26.12.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(sinij @  26.12.2006,  14:21 Найти цитируемый пост)
простой метод focus() в конце всего кода не помогает (объект input появляется позже)  

Странная логика... Передать фокус можно только по .focus() из скрипта, а твоя задача уже вызвать сей метод когда нужно. Худший вариант: ставь на таймер setTimeout(). Если пошевелить мозгами, то можно отследить у себя в коде когда ты создаёшь поле и после создания поставить фокус.

Приведи код, разберёмся.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sinij
Дата 26.12.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.10.2005
Где: Украина, Киев

Репутация: нет
Всего: нет



Вот код
Код

function sh_marks(p, el){
 if(p==null)p="?id=0";
 if(document.getElementById("id_cell").value=="" || document.getElementById("id_cell").value!=el){
 if(xmlHttp){
  try{
   id_el=el;
   xmlHttp.open("GET", "http://192.168.0.5/cgi-bin/addons.cgi"+p, true);
   xmlHttp.setRequestHeader("Content-Type", "text/plain");
   xmlHttp.setRequestHeader("Accept-Language", "ru, en");
   xmlHttp.setRequestHeader("Accept-Charset", "windows-1251;q=1");
   xmlHttp.onreadystatechange = handleRequestStateChange;
// вывели текстовое поле
   xmlHttp.send(null);
   document.getElementById("id_cell").value=el;
// ади и нейм текстого поля которое выпало 'T'+el.substring(1, el.length)
   document.getElementById('T'+el.substring(1, el.length)).focus();
  }
  catch(e){
   alert("Неможливо з'єднатися з сервером "+e.toString());
  }
 }
}
 else{
    
 }
}


код в принципе книжный ничего особеннго только фокус неудается передать
PM MAIL WWW   Вверх
zera
Дата 26.12.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 19.1.2006
Где: saint-petersburg

Репутация: 2
Всего: 9



фокус на полученный аяксом элемент надо ставить в функции handleRequestStateChange
PM MAIL   Вверх
Sardar
Дата 26.12.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



sinij, отложи пока асинхронный аякс в сторону, пока не разберёшься что к чему. Замени true на false в xmlHttp.open. Это остановит выполнение скрипта пока ответ не придёт. Галимо конечно, но под твою логику пойдёт.

Когда захочешь использовать асинхронные запросы (на .send() тред не засыпает), то как уже сказал zera, ставь фокус в handleRequestStateChange. Проще конечно handleRequestStateChange заменить своим closure (замыкания, если не знаешь что это, вбей в поиск).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sinij
Дата 27.12.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 5.10.2005
Где: Украина, Киев

Репутация: нет
Всего: нет



Цитата(Sardar @ 26.12.2006,  23:30)
sinij,то как уже сказал zera, ставь фокус в handleRequestStateChange

Большое спасибо все заработало
PM MAIL WWW   Вверх
UnWarrioR
Дата 15.2.2007, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.2.2007
Где: Брянск

Репутация: нет
Всего: нет



Помогите с такой проблемой 

дето на страничке есть код

Код
..
<td><br>

      <center>
      <font size="2">
      Поиск по сайту<br>
          <input maxlength="32"  name="Edit3" size="12" type="text" id="find_t">
           <input value="Поиск"  type=button onfocus="error2()" onClick="find_text()">
          </font>
      </center>
<br>

...



а вот и сама функция, на фокусе

Код
function error2()
{
if (Edit3.value =="") 
alert ('Вы не ввели данные для поиска !!')
}



Проблема в том что  я ищю текст не ссылкой а, type=button, и поэтому если Edit1 пуст то при фокусе на кнопку алерт выводит ошибку, вроде всё как надо, но фокус остаётся на кнопке, и нажатие F5 или повторно на кнопку приводет к постоянному выскакиванию данного алерта 

что надо дописать сюда чтобы после алерта фокус с кнопки снимался
Код

....
if (Edit3.value =="") 
alert ('Вы не ввели данные для поиска !!')
???????
.....

PM MAIL WWW ICQ   Вверх
zera
Дата 16.2.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 19.1.2006
Где: saint-petersburg

Репутация: 2
Всего: 9



blur() smile
PM MAIL   Вверх
SelenIT
Дата 16.2.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



а лучше передавать фокус на поле, которое юзеру следует подкорректировать - this.form.Edit3.focus();


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Sardar
Дата 16.2.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Убрать onfocus с кнопки, проверять по onclick (что логичней).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.