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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: переместиться на данной странице
 
 автор: victoor   (25.06.2007 в 17:36)   письмо автору
 
 

Здравствуйте!
У меня есть страничка с таблицей. Каждую строчку можно изменить (вся таблица - одна форма, в каждой строке есть поле для обновления).
Рядом есть еще одна небольшая форма. В ней несколько полей ввода и кнопочка.
Как сделать, чтобы после ввода данных во все окна этой маленькой таблицы (проверку на ввод я и сам легко сделаю) и нажатию на кнопочку страница проматывалась на элемент, код которого был введен в окошки большой таблицы? Промотка должна происходить без перезагрузки таблицы, т.к. это будет поиск по большой таблице с целью ввода очередного изменения, но реальное изменение данных должно происходить не по нажатию на форме поиска...

Надеюсь, понятно объяснил...

Заранее спасибо за ответ.

   
 
 автор: CNT   (25.06.2007 в 18:24)   письмо автору
 
   для: victoor   (25.06.2007 в 17:36)
 

Примените к нужному элементу таблицы метод focus () и "перемотка" страницы произойдёт автоматически.

Если вдруг нужный элемент не является элементом, способным получить фокус, тогда в Эксплорере-only вас выручит метод scrollIntoView (place), где place = 1 или 0 ("перемотка" завершится, когда элемент окажется сверху или снизу окна браузера).

   
 
 автор: victoor   (25.06.2007 в 21:39)   письмо автору
 
   для: CNT   (25.06.2007 в 18:24)
 

Спасибо, focus() подойдет...
Маленький вопрос в добавку: имя элемента мне известно, но оно как текстовая строчка... как сделать для этого элемента метод focus()?

   
 
 автор: CNT   (25.06.2007 в 22:19)   письмо автору
 
   для: victoor   (25.06.2007 в 21:39)
 

Если известно уникальное имя HTML-элемента, то обратиться к нему можно несколькими способами.
В вашем случае, если есть форма, а в ней есть какой-то <INPUT>, правильнее всего будет так:
<form name="myForm">
...
<input type="text" name="myField">
...
</form>

<script>
document.forms.myForm.myField.focus ();
</script>

Ежели имя не уникально, например, в форме присутствует радиогруппа из трёх, к примеру, радиокнопок (или чекбоксов) с name="myGroup", то тогда лучше обращаться через коллекцию getElementsByName, т.е. фокус первой по коду радиокнопке можно будет дать так:
document.getElementsByName ('myGroup') [0]
, а к третьей:
document.getElementsByName ('myGroup') [2]

   
 
 автор: victoor   (25.06.2007 в 22:43)   письмо автору
 
   для: CNT   (25.06.2007 в 22:19)
 

имя уникально, но оно в строке забито... т.е.
search_name='val_'+num1+'_'+num2+'_'+num3;
в результате (как пример) в search_name=='val_1_9_12'
объект с name='val_1_9_12' существует, более того, такое имя уникально...
Видимо, тут поможет метод 2, но без циферок...

   
 
 автор: CNT   (26.06.2007 в 00:50)   письмо автору
 
   для: victoor   (25.06.2007 в 22:43)
 

Можно так:
document.forms.myForm [search_name].focus ();

А можно и так:
document.forms.myForm ['val_1_9_12'].focus ();

Коллекцию getElementsByName "без циферек" использовать нельзя, ибо это - массив (потому и getElementsByName).
Если имя уникально, то всё равно нулевой индекс элемента массива должен быть:
document.getElementsByName ('val_1_9_12') [0].focus ();
либо
document.getElementsByName (search_name) [0].focus ();

   
 
 автор: victoor   (26.06.2007 в 01:36)   письмо автору
 
   для: CNT   (26.06.2007 в 00:50)
 

ага...
Спасибо...

   
Rambler's Top100
вверх

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