Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2010, 10:24   #1
Vitalyk
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 17
Сообщение Особенности document.write()

Помогите пожалуйста разобраться с применением метода document.write() в JavaScript. Такая ситуация: есть страница с написанным HTML кодом, на этой же странице написан скрипт. Броузер отобразил этот HTML код, после этого происходит выполнение скрипта (например, когда пользователь ввел какие-то данные). Хочу, чтобы этот скрипт отобразил что-то дополнительно на этой же странице, например, написал какое-то сообщение в конце страницы. Но при использовании document.write() для этой же страницы отображается только то новое, что написал скрипт, а весь ранне отображенный HTML код пропадает.
Vitalyk вне форума Ответить с цитированием
Старый 10.02.2010, 11:47   #2
cooperOk
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 66
По умолчанию

для этих целей используй innerHTML

наример:
Код:
document.getElementById('id').innerHTML = "newText";
cooperOk вне форума Ответить с цитированием
Старый 10.02.2010, 13:07   #3
Vitalyk
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 17
По умолчанию

Что-то не понял.
Вот, конкретней, у меня есть кнопка:
Код:
<input type='button' value='еще поле ввода' ID='IK1' onclick='myfunc()'>
Мне нужно, чтобы когда пользователь нажмет на нее, под ней выходило текстовое поле ввода. Пишу, например, так в функции:
Код:
document.forms[0].innerHTML="<input type='text' size='15'>"
что-то не получается того что нужно
Vitalyk вне форума Ответить с цитированием
Старый 10.02.2010, 15:21   #4
cooperOk
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 66
По умолчанию

Так это совсем разные задачи. innerHTML меняет содержимое объекта. Тебе проще создать этот инпут, но указать ему в стиле display: none; а при нажатии на кнопку сменить стиль на display: block;

примерный код функции myfunc():
Код:
document.getElementById('myInput').style.display = "block";
а вот тот невидимый инпут:
Код:
<input type='text' size='15' id="myInput" style="display: none;">
cooperOk вне форума Ответить с цитированием
Старый 12.02.2010, 20:38   #5
Vitalyk
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 17
По умолчанию

Спасибо, в этом разобрался.
Но вот еще возникает вопрос: innerHTML работает только по первому уровню после объекта document. То есть могу обратиться к коллекции или по идентификатору первого уровня. А если писать вот так:
Код:
document.forms[1].elements[1].innerHTML="..."
то не работает. Или если нужно обратиться по идентификатору во вложенной структуре( то есть в форме инпут, в нем идентификатор), не получается. Пишет: неизвестная ошибка выполнения.
Vitalyk вне форума Ответить с цитированием
Старый 14.02.2010, 10:07   #6
cooperOk
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 66
По умолчанию

Если не ошибаюсь, то такой вид записи не во всех браузерах поддерживается. Лучше всего обращаться к элементу по его ID (getElementById())
cooperOk вне форума Ответить с цитированием
Старый 14.02.2010, 17:54   #7
Vitalyk
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 17
По умолчанию

Дело в том, что и так не работает, притом в разных броузерах пробовал:
Код:
<form>
<input type='text' ID='F4_2' class='.frm' onkeydown='_clean()'; onkeyup='_google();_reset()'><br><br>
<input type='button' ID='F4_3' class='.frm' value='ß çíàþ ñëîâî!' onclick='wr()'></form>

function wr() 
{
document.getElementById('F4_3').innerHTML="..."
}
Посоветуйте, кто-нибудь, пожалуйста, как можно решить такую проблему. Если писать form, то работает, но мне нужно второе input.
Vitalyk вне форума Ответить с цитированием
Старый 14.02.2010, 18:28   #8
cooperOk
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 66
По умолчанию

Скажи четко что тебе надо сделать, что изменить?. А то на месте топчемся.
cooperOk вне форума Ответить с цитированием
Старый 14.02.2010, 22:41   #9
Vitalyk
Пользователь
 
Регистрация: 07.02.2010
Сообщений: 17
По умолчанию

Спасибо, вроде уже разобрался. Последняя проблема была в том, что innerHTML не работает в input, нужно для него создавать отдельный form или еще что-то делать.
Vitalyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
document.write Flamberg JavaScript, Ajax 1 10.01.2010 15:07
Особенности SSL OCTAGRAM Свободное общение 2 01.01.2010 16:42
Особенности Delphi 2009 Veiron Общие вопросы Delphi 26 11.07.2009 19:08
Особенности разных версий mutabor Microsoft Office Excel 3 21.04.2009 21:08
Как обратиться к линку из document.write ? Navsad JavaScript, Ajax 8 31.01.2009 17:08