X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с скриптом плз..
Dmitrii_hb
Dmitrii_hb
Topic Starter сообщение 3.10.2013, 19:14; Ответить: Dmitrii_hb
Сообщение #1


Всем привет. Такая проблемка:
[JS]<script type="text/javascript">
var coin=0;
var c = new Array(290,270,220,170,190,200,200,240,150,190,230,290,230,220,240,230,250,240,19
0,250,270,210,340,230,250,230,210,250,250,240,270,280,280,250,240,300,250,250,170
,330,200,240,120,160,260,200,310,190,230,190,190,200,190,150,180,340,470,290,210,
270,490,300,470,370,360,170,270,390);
var b = new Array(111,125,1036,1035,1034,1033,1032,1031,1030,1028,1029,1027,1026,1025,1024,1
023,1022,1021,1020,1019,1018,1017,1016,1015,1014,1013,1012,1011,1010,109,108,107,
106,105,104,103,102,101,134,133,132,131,143,142,141,124,123,122,121,157,156,155,1
54,153,152,151,1612,1611,1610,169,168,167,166,165,164,163,162,161);
function order_coin() {
for(i=0;i<100;i++)
if(document.getElementById("fc"+b).checked==true) {
coin = coin+c[i];
}}
document.getElementById("order_coin_value").innerHTML=coin;
document.getElementById("order_coin_vspl").innerHTML=coin;
document.getElementById("f2").value="Заказ на "+coin+"р.";
coin=0;
}
</script>[/JS]
В идеале скрипт должен перебирать ID чекбоксов из массива [I]b
, определять, отмечен ли этот чекбокс, и, если отмечен, прибавлять из массива c его "пару", т.е., например, если отмечен чекбокс fc1036 и fc1035, то в значении coin указывается 390 (220+170).
Хром выдаёт это:
Uncaught ReferenceError: order_coin is not defined 0-3:356
onclick

С других браузеров пока что нет возможности проверить.
Весь код выкладывать не буду, ибо слишком большой, но скрипт вызывается так:
<table ... onclick="order_coin()">

Прошу помочь, опытные яваскриптеры:)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alekslv
alekslv
сообщение 3.10.2013, 22:08; Ответить: alekslv
Сообщение #2


во первых ,почему такой сранный цикл

(Dmitrii_hb @ 3.10.2013, 22:14) *
for(i=0;i<100;i++)

почему не так
[JS]
var l= b.length;
for(var i=0;i<l;i++)
[/JS]
а почему такая ошибка без всей страницы трудно сказать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dmitrii_hb
Dmitrii_hb
Topic Starter сообщение 4.10.2013, 11:01; Ответить: Dmitrii_hb
Сообщение #3


http://япончик-63.рф/index/0-3 - вот страница
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dmitrii_hb
Dmitrii_hb
Topic Starter сообщение 4.10.2013, 14:47; Ответить: Dmitrii_hb
Сообщение #4


Саму ошибку нашел: лишний знак "}" (9 строка скрипта). Теперь ошибок не выдаёт - просто стоит "0" - значение coin не меняется.
Сам цикл работает - проверил. Проблема в условии:
[JS]var a = "fc" + b[i];
if(document.getElementById(a).checked==true) {
coin = coin+c[i];
}[/JS]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 4.10.2013, 17:38; Ответить: Galen
Сообщение #5


А document.getElementById(a).checked разве true должен содержать?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alekslv
alekslv
сообщение 4.10.2013, 23:17; Ответить: alekslv
Сообщение #6


я просто занят был... тут страсти продолжаются ^_^
во-первых если вешать событие на таблицу -то логика вообще другая должна быть:тогда надо проверять на что кликнули и т.д. ....согласно Вашей функции order_coin то проще всего то так...я добавил свои элементы в DOM
<button id="but"> Расчитать</button>
<div><span id="res">0</span>рублей</div>


[JS]
var coin=0;
var c = new Array(290,270,220,170,190,200,200,240,150,190,230,290,230,220,240,230,250,240,19
0,250,270,210,340,230,250,230,210,250,250,240,270,280,280,250,240,300,250,250,170
,330,200,240,120,160,260,200,310,190,230,190,190,200,190,150,180,340,470,290,210,
270,490,300,470,370,360,170,270,390);
var b = new Array(111,125,1036,1035,1034,1033,1032,1031,1030,1028,1029,1027,1026,1025,1024,1
023,1022,1021,1020,1019,1018,1017,1016,1015,1014,1013,1012,1011,1010,109,108,107,
106,105,104,103,102,101,134,133,132,131,143,142,141,124,123,122,121,157,156,155,1
54,153,152,151,1612,1611,1610,169,168,167,166,165,164,163,162,161);
var l= b.length;
function order_coin() {
for(var i=0;i<l;i++)
if(document.getElementById("fc"+b[i]).checked==true) {
coin = coin+c[i];
}
document.getElementById('res').innerHTML=coin;
coin=0;
}
document.getElementById("but").onclick= order_coin;
[/JS]
и вообще зачем создавать массив с ценами -там что бы поменять цену надо часа два сидеть искать нужную..можно ж использовать атрибут value input ,а потом считывать его
(Galen @ 4.10.2013, 20:38) *
А document.getElementById(a).checked разве true должен содержать?

а вот это не понятно..а что ...true или false
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dmitrii_hb
Dmitrii_hb
Topic Starter сообщение 6.10.2013, 14:48; Ответить: Dmitrii_hb
Сообщение #7


Сделал раньше, чем ещё комментарии появились. Использовал jQuery:
[JS]<script type="text/javascript">
var coin=0;
var c = new Array("290","270","220","170","190","200","200","240","150","190","230","290","230","220","240","230","250","240","190","250","270","210","340","230","250","230","210","250","250","240","270","280","280","250","240","300","250","250","170","330","200","240","120","160","260","200","310","190","230","190","190","200","190","150","180","340","470","290","210","270","490","300","470","370","360","170","270","390");
var b = new Array("111","125","1036","1035","1034","1033","1032","1031","1030","1028","1029","1027","1026","1025","1024","1023","1022","1021","1020","1019","1018","1017","1016","1015","1014","1013","1012","1011","1010","109","108","107","106","105","104","103","102","101","134","133","132","131","143","142","141","124","123","122","121","157","156","155","154","153","152","151","1612","1611","1610","169","168","167","166","165","164","163","162","161");
var l = b.length;
function order_coin() {
for(var i=0;i<l;i++)
if($("#fc"+b[i]).attr("checked")=='checked') {
coin = parseInt(coin)+parseInt(c[i]);
}
document.getElementById("zakaz_coin_vspl").innerHTML=coin;
document.getElementById("f2").value="Заказ на "+coin+"р.";
coin=0;
}
</script>[/JS]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 732 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2345 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12552 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3362 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 25.4.2024, 14:58
Дизайн