Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.01.2011, 01:29
Новичок на форуме
Отправить личное сообщение для Vladislav_V Посмотреть профиль Найти все сообщения от Vladislav_V
 
Регистрация: 11.01.2011
Сообщений: 4

Найти элемент ниже скрипта
Здравствуйте!

Такой вопрос по javascript.

Есть html страница структура и хронология такая:
-----------------------
(Код javascript)

Кнопка "Расчитать"

(поля с информацией)
-----------------------

После того как нажимается кнопка "расчитать" скрипт пытается
получить доступ к полям с информацией через GetElementById, и не находит их потому что они ниже скрипта располагаются. Т.е. если поля в документе расположить выше скрипта все будет работать.

Вопрос как можно найти эти элементы не меняя структуру?

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 11.01.2011, 09:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,219

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>

Сообщение от Vladislav_V
получить доступ к полям с информацией через GetElementById
Может все дело в этом?
Ответить с цитированием
  #3 (permalink)  
Старый 11.01.2011, 17:51
Новичок на форуме
Отправить личное сообщение для Vladislav_V Посмотреть профиль Найти все сообщения от Vladislav_V
 
Регистрация: 11.01.2011
Сообщений: 4

ksa, спасибо. Так действительно работает, когда вызов идет по нажатию клавиши Get. Но у меня вместо кнопки с Get стоит просто вызов функции:

<script>
Get();
</script>

И вот тогда не работает. По большому счету конечно омжно решить клавишей но хотелось бы узнать можно ли как то найти элемент если скрипт выполнился когда вся страница еще не прогрузилась?

2. и еще один вопрос:

После того как я дополняю input, своим значением:

document.getElementById('test').value += "+20"

Оно действительно добавляется(но кратковременно) и тут же исчезает,
как только скрипт отработал. И в поле ввода остается тоько то что вписал пользователь. А нужно что бы оставалось то что вписал например "100" и получилось бы: "100+20".
Именно что бы это было видно в input.
Ответить с цитированием
  #4 (permalink)  
Старый 11.01.2011, 20:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,219

Vladislav_V, если элемента в ДОМ еще нет - скрипт бесполезен.
Сообщение от Vladislav_V
После того как я дополняю input, своим значением:

document.getElementById('test').value += "+20"


Оно действительно добавляется(но кратковременно) и тут же исчезает,
Пора и тебе делать тестовые примеры...
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2011, 01:03
Новичок на форуме
Отправить личное сообщение для Vladislav_V Посмотреть профиль Найти все сообщения от Vladislav_V
 
Регистрация: 11.01.2011
Сообщений: 4

Сообщение от ksa Посмотреть сообщение
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.
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2011, 01:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

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>
Ответить с цитированием
  #7 (permalink)  
Старый 12.01.2011, 01:35
Новичок на форуме
Отправить личное сообщение для Vladislav_V Посмотреть профиль Найти все сообщения от Vladislav_V
 
Регистрация: 11.01.2011
Сообщений: 4

Сообщение от рони Посмотреть сообщение
Vladislav_V,
по onsubmit идёт обработка данных перед отправкой формы -- отправку данных формы вы не прерываите - они уходят - в данном случае в </form>[/html]
Понял. Но мне то и нужно что бы поля отправились дополненые нужными мне расчетами. Можно ли как то после прерывания продолжить?
Т.е. прервать отправку и затем другим скриптом автоматически продолжить?
Ответить с цитированием
  #8 (permalink)  
Старый 12.01.2011, 01:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Vladislav_V,
Так данные формы и отправились дополненными!!! В Вашем прежнем варианте.
Ответить с цитированием
  #9 (permalink)  
Старый 12.01.2011, 08:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,219

Vladislav_V, вроде же все объяснили уже...
Сообщение от рони
страница обновляеться и данные формы становяться по умолчанию
Мудрить не нужно - пора подключать серверный язык и вычитывать данные из реквеста.
Пример на csp

<textarea id="f1" name='test'>#($g(%reqest.Data("test",1)))#</textarea>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
closest(). Как найти элемент в толпе? Viper jQuery 17 22.11.2011 17:28
Найти элемент "A" по "HREF" Nitrogen jQuery 4 27.10.2010 19:19
Отладка. При клике на элемент найти функцию-обработчик в коде romangaag Events/DOM/Window 3 24.10.2010 03:09
Найти элемент относительно this igsavenko jQuery 5 08.07.2010 01:41
Найти элемент под курсором Гость Элементы интерфейса 16 11.12.2009 14:08