Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с document.write, Не могу понять! 
:(
    Опции темы
4aa19
Дата 16.11.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Мне нужно, что бы при нажатии на кнопку, запускалась функция javascript и дописывала html-код на той же странице, если я использую document.write, то оно всё это пишет на новой странице, которую само и создаёт! Ещё делал с document.getElementById(' ').innerHTML, оно пишет на той станице, но не всё правильно пишет! Может есть какие другие функции или может где-то надо, ещё чего дописать! Подскажите пожалуйста!
PM MAIL   Вверх
comtat
Дата 16.11.2009, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 7
Всего: 71



Цитата(4aa19 @  16.11.2009,  15:41 Найти цитируемый пост)
оно пишет на той станице, но не всё правильно пишет!

А что именно не правильно пишет ?? Пример


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
4aa19
Дата 16.11.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Просто там идёт ещё css код, но document.getElementById(' ').innerHTML его почему-то не воспринимает! А с css2Properties я не могу разобраться!

Добавлено @ 18:48
Код

<script language="JavaScript">
<!-- hide

function vvod_matr() 
{
var a=Number(document.getElementById('a1').value);
var b=Number(document.getElementById('b1').value);
var i;
var d;
var c;
var k;
var j;
var l=100;
document.getElementById('results1').innerHTML ='';
for (j = 1; j <= a; j++)
   {
   document.getElementById('results').innerHTML ='<style type="text/css"><!-- #kolon'+j+'       { position: absolute; top: 200px; left: '+l+'px;  width: 80px;  }  -->  </style>' ;
     l=j*90;
document.getElementById('results1').innerHTML +='<div id="kolon'+j+'">';
  for(i = 1; i <= b; i++)
      {
  document.getElementById('results1').innerHTML +='<form action=""><input type="text" id="'+i+j+'" value= "'+i+j+'"елемент size=8 maxlength="8">  </form>';
 
      }document.getElementById('results1').innerHTML +='</div>';
    
   } 
 
document.getElementById('results2').innerHTML ='<form action=""><input type="button"value="Решить" onClick="obr_matr()">  </form>';
}

<div id="vvod">
<form action="">
<input type="text" id="a1" value="введите a" size=8 maxlength="2">
</form>

<form action="">
<input type="text" id="b1" value="введите b" size=8 maxlength="2">
</form>
</div>



<form>
<input type="button" value="Решить" onClick="vvod_matr()">
</form>      
<div id="results"></div>
<div id="results1"></div>
<div id="results2"></div>
<div id="results3"></div>
<div id="results4"></div>


Если вместо  document.getElementById('results').innerHTML прописать document.write, то всё работает только в новом документе!

Это сообщение отредактировал(а) 4aa19 - 16.11.2009, 18:52
PM MAIL   Вверх
bars80080
Дата 16.11.2009, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



...

Это сообщение отредактировал(а) bars80080 - 16.11.2009, 18:59
PM MAIL WWW   Вверх
Amphiluke
Дата 16.11.2009, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(4aa19 @  16.11.2009,  15:41 Найти цитируемый пост)
Может есть какие другие функции или может где-то надо, ещё чего дописать!

Конечно есть. И было бы правильнее использовать именно их. Это стандартные методы объектов document, body и др., такие как createElement(), appendChild(), insertBefore()... Однако при таком (правильном) подходе размер кода увеличится значительно, поскольку придется по очереди один за другим выставлять все атрибуты создаваемых объектов.
Если позволяет логика работы вашего веб-приложения, то лучше было бы не создавать с нуля все эти элементы (контейнеры, формы, элементы форм), а просто статично прописать их в коде и задать стиль display="none", а при возникновении необходимости отобразить — display="block" или там display="inline". Но с дескриптором style так лучшене шутить, как вы. Правильнее создать заранее CSS класс и опять же при возникновении необходимости сменить/установить этот класс для нужных элементов.

P.S. Вообще, использование innerHTML — очень нехороший не очень хороший стиль програмирования.
PM   Вверх
4aa19
Дата 16.11.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



там количество элементов задаётся с форм, то использовать display="none" не выйдет:(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.