Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Фокус элемента формы при ее появлении

Сообщения:  [1-10]   [11-14] 

 
 автор: SHAman   (04.03.2011 в 17:18)   письмо автору
 
   для: dimaxz   (04.03.2011 в 15:04)
 

Просто покажите функцию, которая отображает форму.

[поправлено модератором]

  Ответить  
 
 автор: sim5   (04.03.2011 в 16:04)   письмо автору
 
   для: dimaxz   (04.03.2011 в 15:38)
 

Вы читали выделенное жирным, что callback, это ваша функция после завершения операции загрузки данных с сервера? Вот и пишите в этой функции все что вам нужно.

  Ответить  
 
 автор: dimaxz   (04.03.2011 в 15:38)   письмо автору
 
   для: dimaxz   (04.03.2011 в 15:35)
 

вот мне и нужно НЕ ковырятся в каждом виджете на событии ajax "ЗАГРУЖЕННО УСПЕШНО"

а в конструкторе form.init сфокусировать элемент если он появился и видим и находится внутри формы _name

  Ответить  
 
 автор: dimaxz   (04.03.2011 в 15:35)   письмо автору
 
   для: sim5   (04.03.2011 в 15:09)
 

работает так:


//так запускается форма с вкладками формируется объект с именем form_task а внутри формы идет рендеринг вкладок и уже ОНИ АСИНХРОННО подгружают данные
form.init('form_task',['tabs'],'title')

//такой вызов создаст форму не тока с вкадками но и с autocomplete
form.init('form_task',['tabs','autocomlpete'],false)

//а такой самый простой загрузит асинхронно содержимое
form.init('form_task',['frame'],'title')

в примере указал самый простой способ,здесь важно имеено во время формирования формы установить событие которое бы делало фокус на указанном элементе

form.init = function(_name,_obj,_focusID){

//здесь формируем окно _name

//здесь запускаем другие виджеты _obj

//здесь делаем фокус на элементе если указан _focusID и если загружен в DOM

}

  Ответить  
 
 автор: sim5   (04.03.2011 в 15:09)   письмо автору
 
   для: dimaxz   (04.03.2011 в 14:36)
 

.load()

Осуществляет запрос к серверу методом GET, без перезагрузки страницы. Полученные от сервера данные рассматриваются библиотекой jQuery как html. При получении данных, они автоматически будут помещены внутрь выбранных элементов на странице. Функция имеет несколько необязательных параметров.
.load(url, [data], [callback], [dataType]):jQueryv:1.0

url — url-адрес, по которому будет отправлен запрос.
data — данные, которые будут отправлены на сервер. Они должны быть представлены в форме объекта, например: {fName1:value1, fName2:value2, ...}.
callback(data, textStatus, XMLHttpRequest) — пользовательская функция, которая будет вызвана после того, как присланный сервером html-текст будет помещен в выбранные элементы страницы.
data — данные, присланные с сервера.
textStatus — статус того, как был выполнен запрос.
XMLHttpRequest — объект XMLHttpRequest

  Ответить  
 
 автор: dimaxz   (04.03.2011 в 15:04)   письмо автору
 
   для: SHAman   (04.03.2011 в 14:50)
 

http://myproject.lanetz.ru/

двойной щелчек по таблице покажет форму

  Ответить  
 
 автор: SHAman   (04.03.2011 в 14:50)   письмо автору
 
   для: dimaxz   (04.03.2011 в 14:36)
 

Проблема все еще не ясна.
Непонятно что находится на странице в момент загрузки, когда и что именно подгружается аяксом, куда оно девается и как когда убирается с экрана и т.д.

По идее, как только вы встроили объект в DOM - можно вешать на него обработчики. Но тут, в общем, так дело обстоит:

1) если вы загрузили что-то аяксом и тут же показали нужно последней строкой сделать этот фокус и все будет работать.
2) если вы загрузили так, что оно скрыто, то существует какой-то скрипт, который эту форму будет показывать. А раз так, то в конец этого скрипта нужно добавить этот злосчастный фокус.

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

  Ответить  
 
 автор: dimaxz   (04.03.2011 в 14:36)   письмо автору
 
   для: SHAman   (04.03.2011 в 14:27)
 

в том то и дело что нет такого момента при котором поле видно

$('#task_t_form #ol_subject').load(function(){
this.focus()
alert('focus')
});

при load вообще ничего не происходит

а при ready вообще если форма еще не формировалась

  Ответить  
 
 автор: SHAman   (04.03.2011 в 14:27)   письмо автору
 
   для: dimaxz   (04.03.2011 в 14:14)
 

Ну дополните. Но вообще-то, скорее всего, у вас известен момент когда это поле уже видно.

Чего вы хотите-то? Там скрипт на одну строку. Метод focus(). Когда его дергать - вам виднее, потому что только вы понимаете как у вас там все происходит. Я уже сгенерировал несколько решений, но вы все отвергаете почему-то.

  Ответить  
 
 автор: dimaxz   (04.03.2011 в 14:14)   письмо автору
 
   для: SHAman   (04.03.2011 в 13:14)
 

но это событие надо еще дополнить событием на готовность элемента TITLE

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования