Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
lacklustre
2 / 2 / 0
Регистрация: 23.10.2008
Сообщений: 25
1

код в HTML работает, но не работает в JavaScript

06.04.2011, 19:20. Просмотров 2632. Ответов 2
Метки нет (Все метки)

Вот куски кода...
HTML5
1
2
3
4
5
6
<input type="checkbox" name="installation_n" onclick="nast()"/>Наш монтаж<br>
 <table id="equip">
 </table> 
 <script type="text/javascript" src="file:///G:/Insyte5/commerc.js"></script> 
 <input type="button" name="comerc_n" id="comerc_id" value="Сформировать коммерческое предложение" onclick="commerc()"/> 
 <script type="text/javascript" src="file:///G:/Insyte5/table.js"></script>
скрипт commerc.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
     function t_equipment(name, type_s)
     {
      this.type_s = type_s;
      this.name = name;
     }
     
     var a_equipment = new Array();
     a_equipment[0] = new t_equipment("Логический контроллер", "logic_controllers")
     a_equipment[1] = new t_equipment("Встраиваемые микромодули", "embeddable_micromodules")
     
     function equipment(name, price, count, vsego, description, t_equipment, id)
     {
      this.name = name;   
      this.price = price;
      this.count = count; 
      this.vsego = vsego; 
      this.description = description;
      this.t_equipment = t_equipment;
      this.id = id;   
     }   
     //equipment.id = document.getElementById("equip");
     
     var n_equipment = new Array();  
     n_equipment[0] = new equipment("SPIDER2", 500, "", "", "Программируемый логический контроллер, USB, Ethernet, RS-485, RS-232, 1-Wire, 4 реле, 4 дискр. входа, 2 аналог. входа, GSM-модем, GSM-антенна, USB-кабель, DIN", a_equipment[0])
     n_equipment[1] = new equipment("SPIDER", 250, "", "", "Программируемый логический контроллер, RS-485, RS-232, блок питания, кабель, DIN", a_equipment[0])
 
 function n_montaj(names, price, vsego)
 {
  this.names = names;
  this.price = price;
 } 
 var montaj = new Array();
 montaj[0] = new n_montaj();
 montaj[1] = new n_montaj("Работы по монтажу системы", 100);
скрипт table.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function commerc()
 {
     var vss = 0;
     var pusk = 0;   
     comm = window.open("", "Автоматизация",     "width = 1200px, height = 1600px, status=yes, toolbar=yes, menubar=yes", true);
     comm.document.open();      
     comm.document.write("<h2 align='center'> Коммерческое предложение </h2>");
 
     var strTab = "<table border='2' ><tr>"
     strTab += "<th> Тип </th><th width=100px> Наименование </th><th width=80px> Цена </th><th width=65px> Кол-во </th><th width=100px >"
     strTab += "Всего </th><th width=550px > Описание </th>"    
     for(var i = 0; i <= n_equipment.length - 1; i ++) 
     {
      vss = parseFloat(1 * (n_equipment[i].price));
      strTab += "<TR><TD>" + n_equipment[i].t_equipment.name + "</TD><TD align=left >" + n_equipment[i].name 
      strTab += "</TD><TD align=center >" + n_equipment[i].price + "</TD><TD align=center >" + 1/*n_equipment[i].count*/ 
      strTab += "</TD><TD align=center >" + vss/*n_equipment[i].vsego*/ + "</TD><TD><h5>" + n_equipment[i].description + "</h5></TD></TR>"  
     } 
     strTab += "</table>"  
     comm.document.write(strTab);   
    //******************************************************************
    // Подсчёт количества элементов
     var col = 0;    
     var count_col = new Array();
     for( var i = 1; i < document.getElementById("equip").rows.length; i ++)
     {
      count_col = parseInt(document.getElementById("equip").rows[i].cells[3].innerHTML);
      col += count_col;  
     }   
     strTab = "<table border='2' ><tr>"  
     strTab += "<tr><td align='right' width='495px' >Кол-во: " + col + "</td></tr>"
     strTab += "</table>"  
     comm.document.write(strTab);     
    //****************************************************************** 
    // Подсчёт итоговой суммы     
     var vs = 0;
     var count_vs = new Array();
     for( var i = 1; i < document.getElementById("equip").rows.length; i ++)
     {
      count_vs = parseFloat(document.getElementById("equip").rows[i].cells[2].innerHTML);
      vs += count_vs;
      //alert(vs);  
     }   
     strTab = "<table border='2' ><tr>"
     strTab += "<tr><td align='right' width='600px' > Итого стоимость оборудования: " + vs + " руб.</td></tr>"
     strTab += "</table>" 
     comm.document.write(strTab);    
    //******************************************************************
    // Виды работ   
     strTab = "<table 'border='2' ><tr>"
     strTab += "<th align='center' width=40px > №: </th><th align='left' width=600px > Наименование работ "
     strTab += "</th><th align='center' width=90px > Кол-во (шт.) </th><th align='center' width=80px > Цена (руб.) "
     strTab += "</th><th align='center' width=100px > Сумма (руб.) </th>"    
     var mvs = 0;
     for(var i = 1; i <= montaj.length - 1; i ++) 
     {
      mvs = parseFloat(col * (montaj[i].price));
      strTab += "<TR><TD align=center>" + i + "</TD><TD align=left>" + montaj[i].names + "</TD><TD align=center>" + col  
      strTab += "</TD><TD align=right>" + montaj[i].price + "</TD><TD>" + mvs + "</TD></TR>"       
     }   
     strTab += "</table>" 
     comm.document.write(strTab);    
    //******************************************************************
    // Расчёт суммы пусконаладочных работ
     strTab = "<table border='2'> <tr>"
     strTab += "<tr><td align='left' width='645px'> Пуск и наладка составляет 15% от стоимости оборудования и монтажных работ: </td><td>" 
     strTab += + pusk + " руб.</td></tr>" 
     strTab += "</table>"
     comm.document.write(strTab); 
     comm.document.close();  
 }
Если код вставить в HTML файл между тегами <javascript> </javascript> работает, но если код находится в js файле то код не работает. Ошибка в файле table.js в строке 30
текст ошибки в мозиле document.getElementById("equip") is null
а гугле Uncaught TypeError: Cannot read property 'rows' of null
в опере ошика в строке 30
Uncaught exception: TypeError: Cannot convert 'document.getElementById("equip")' to object.

На другом форуме мне советовали сначала сгенерировать таблицу, затем уже перебирать элементы таблицы и уже после этого загружать данные на сайт. Но всё равно ничего не получается. Помогите.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 19:20
Ответы с готовыми решениями:

Не работает html вместе с javascript
Возникла у меня проблема: при нажатии на ссылку &quot;В начало&quot; курсор на странице должен переходить...

Не работает код на JavaScript
Пытаюсь изучать Java Script, но почти все учебники требуют знания основ html. Разметку я подучил,...

Почему не работает код JavaScript?
Здравствуйте! Скажите пожалуйста, почему не работает код JavaScript (должен в конце показывать...

Не работает написанный JavaScript код в Google Chrome
JavaScript код не работает в Google Chrome, а во всех остальных браузерах все нормально работает....

Не работает код внутри html
Как понятно из названия, не работает код. Причина мне не известна, но скорее всего дело в моих...

2
uggway
220 / 134 / 48
Регистрация: 12.04.2010
Сообщений: 248
06.04.2011, 21:09 2
Во первых: в IE, Chrome, Opera, FF у меня все работает, табличка генерируется, выводится и ошибок нет.
Во вторых: зачем тебе перебирать элементы таблицы, если у тебя все необходимые данные есть в объектах. (да и зачем эти объекты? можно с тем же успехом заменить просто массивами)
В третьих: зачем полный путь к скриптам? (file:///G:/Insyte5/)
0
lacklustre
2 / 2 / 0
Регистрация: 23.10.2008
Сообщений: 25
06.04.2011, 21:50  [ТС] 3
Если у Вас работает, то это говорит о том что у меня руки кривые.
Но у меня таблица тоже генерировалась, только вот не считалось количество и сумма. Перебор элементов я стал делать для того чтобы понять как считать количество и сумму. Зачем полный путь к скриптам, так это потому что я скрипты тестирую локально, а уже после тестирования заливаю на свой сайт.

Добавлено через 24 минуты
на хостинге где у меня сайт, там не разрешено пользоваться php скриптами, и там нет sql сервера. А мне нужно было на сайте сделать on-line калькулятор, я его сделал при помощи скриптов, получилось каряво, но работает. Теперь вот понадобилось формировать ком.предложения, на основании тех данных что выбраны в on-line калькуляторе . Я решил это сделать таким макаром - создать массив с данными, к которому обращается калькулятор, и далее формировать ком.предложения. Может есть путь легче, подскажите.
0
06.04.2011, 21:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2011, 21:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Простейший код работает в MS IE, почему не работает в Mozilla, FireFox?
Приветствую. Вот собственно код: &lt;html&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt; &lt;input type=&quot;button&quot;...

Как проверить подключен ли javascript или у меня другая ошибка,у меня на сайте этот код не работает
&lt;p&gt; &lt;select name=&quot;id_mon&quot; id=&quot;select_mon&quot;&gt; &lt;?php $result =...

Код счетчика посещения для сайта на javascript html
Готовый код счетчика посещений на javascript. По функционалу ничем не уступает стандартным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.