|
|
|
| Здравствуйте!
У меня есть страничка с таблицей. Каждую строчку можно изменить (вся таблица - одна форма, в каждой строке есть поле для обновления).
Рядом есть еще одна небольшая форма. В ней несколько полей ввода и кнопочка.
Как сделать, чтобы после ввода данных во все окна этой маленькой таблицы (проверку на ввод я и сам легко сделаю) и нажатию на кнопочку страница проматывалась на элемент, код которого был введен в окошки большой таблицы? Промотка должна происходить без перезагрузки таблицы, т.к. это будет поиск по большой таблице с целью ввода очередного изменения, но реальное изменение данных должно происходить не по нажатию на форме поиска...
Надеюсь, понятно объяснил...
Заранее спасибо за ответ. | |
|
|
|
|
|
|
|
для: victoor
(25.06.2007 в 17:36)
| | Примените к нужному элементу таблицы метод focus () и "перемотка" страницы произойдёт автоматически.
Если вдруг нужный элемент не является элементом, способным получить фокус, тогда в Эксплорере-only вас выручит метод scrollIntoView (place), где place = 1 или 0 ("перемотка" завершится, когда элемент окажется сверху или снизу окна браузера). | |
|
|
|
|
|
|
|
для: CNT
(25.06.2007 в 18:24)
| | Спасибо, focus() подойдет...
Маленький вопрос в добавку: имя элемента мне известно, но оно как текстовая строчка... как сделать для этого элемента метод focus()? | |
|
|
|
|
|
|
|
для: 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]
|
| |
|
|
|
|
|
|
|
для: CNT
(25.06.2007 в 22:19)
| | имя уникально, но оно в строке забито... т.е.
search_name='val_'+num1+'_'+num2+'_'+num3;
в результате (как пример) в search_name=='val_1_9_12'
объект с name='val_1_9_12' существует, более того, такое имя уникально...
Видимо, тут поможет метод 2, но без циферок... | |
|
|
|
|
|
|
|
для: 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 ();
|
| |
|
|
|
|
|
|
|
для: CNT
(26.06.2007 в 00:50)
| | ага...
Спасибо... | |
|
|
|