Найти элемент ниже скрипта
Здравствуйте!
Такой вопрос по javascript. Есть html страница структура и хронология такая: ----------------------- (Код javascript) Кнопка "Расчитать" (поля с информацией) ----------------------- После того как нажимается кнопка "расчитать" скрипт пытается получить доступ к полям с информацией через GetElementById, и не находит их потому что они ниже скрипта располагаются. Т.е. если поля в документе расположить выше скрипта все будет работать. Вопрос как можно найти эти элементы не меняя структуру? Спасибо. |
Vladislav_V, такки все работает...
<!DOCTYPE html> <html> <head> <style> </style> </head> <body> <script> function Get() { alert(document.getElementById('test').value) } </script> <form> <input type='button' value='Get' onclick='Get()' /> <hr /> <input type='text' id='test' value='1234' /> </form> </body> </html> Цитата:
|
ksa, спасибо. Так действительно работает, когда вызов идет по нажатию клавиши Get. Но у меня вместо кнопки с Get стоит просто вызов функции:
<script> Get(); </script> И вот тогда не работает. По большому счету конечно омжно решить клавишей но хотелось бы узнать можно ли как то найти элемент если скрипт выполнился когда вся страница еще не прогрузилась? 2. и еще один вопрос: После того как я дополняю input, своим значением: document.getElementById('test').value += "+20" Оно действительно добавляется(но кратковременно) и тут же исчезает, как только скрипт отработал. И в поле ввода остается тоько то что вписал пользователь. А нужно что бы оставалось то что вписал например "100" и получилось бы: "100+20". Именно что бы это было видно в input. |
Vladislav_V, если элемента в ДОМ еще нет - скрипт бесполезен.
Цитата:
|
Цитата:
function test() { var v = document.getElementById('f1'); v.value += '+20'; alert(document.getElementById('f1').value); } <form onsubmit="javascript:test();"> <input type='submit' value='calc' /> <textarea id="f1">100</textarea> </form> Вот собственно, нажимаю Calc текстовая ареа дополняется текстом +20 о чем говорит алерт и далее после сообщение снова меняется на 100. |
Vladislav_V,
по onsubmit идёт обработка данных перед отправкой формы -- отправку данных формы вы не прерываите - они уходят - в данном случае в никуда - страница обновляеться и данные формы становяться по умолчанию -- чтобы прервать отправку формы - добавьте - return false-пример ниже <script type="text/javascript"> function test() { var v = document.getElementById('f1'); v.value += '+20'; alert(document.getElementById('f1').value); } </script> <form onsubmit="javascript:test();return false"> <input type='submit' value='calc' /> <textarea id="f1">100</textarea> </form> |
Цитата:
Т.е. прервать отправку и затем другим скриптом автоматически продолжить? |
Vladislav_V,
Так данные формы и отправились дополненными!!! В Вашем прежнем варианте. |
Vladislav_V, вроде же все объяснили уже...
Цитата:
Пример на csp <textarea id="f1" name='test'>#($g(%reqest.Data("test",1)))#</textarea> |
Часовой пояс GMT +3, время: 06:31. |