0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 112
1

Не работает событие onclick

03.08.2015, 20:17. Показов 890. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не работает событие onclick в radio. При нажатии на элементы radio не запускается функция, можете помочь?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form method="post" id="form_1" action="add_chart.php">
        <input type="hidden" name="name" value="СЕНЕЖ АКВАДЕКОР Х2"/>
        <div class="korzina_table_cell korzina_text_1">
            <input type="radio" id="c1" name="ves" value="0.9" checked=""/>&nbsp;&nbsp;<label for="c1"><span></span>0.9 кг</label><br/>
            <input type="radio" id="c2" name="ves" value="2.5" />&nbsp;&nbsp;<label for="c2"><span></span>2.5 кг</label><br/>
            <input type="radio" id="c3" name="ves" value="9" />&nbsp;&nbsp;<label for="c3"><span></span>9 кг</label><br/>
        </div>
        <div class="korzina_table_cell korzina_text_1" required="">
            <input id="proj" onChange="calcul()" type="number" name="pcs" min="1" style="width: 50px;" value="1"/>&nbsp;&nbsp;<label for="c1">шт.</label>
        </div>  
        <div class="korzina_table_cell korzina_text_1" required="">
            <span id="priceframe1" class="price-frame">33</span>
        </div>  
        <div class="clear "></div>
        <div class="vkorzinu">
          В КОРЗИНУ
        </div> 
        </form>
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 getChar(event) {
    if (event.which == null) {
        if (event.keyCode < 32) return null;
        return String.fromCharCode(event.keyCode) // IE
    }
    if (event.which != 0 && event.charCode != 0) {
        if (event.which < 32) return null;
        return String.fromCharCode(event.which)
    }
    return null; 
}
/*1ый элемент*/
    var form1 = document.forms.form_1;
    var colElem1 = form1.elements.pcs;
    var vesElem1 = form1.elements.ves;
    colElem1.onkeypress = function(e) {
        e = e || event;
          var chr = getChar(e);
          if (e.ctrlKey || e.altKey || chr == null) return;
          if (chr < '0' || chr > '9') return false;
    }
    colElem1.onkeyup = calculate1;
    colElem1.oninput = calculate1;
    vesElem1.onclick = calculate1;
    colElem1.onpropertychange = function() { 
      event.propertyName == "value" && calculate1();
    }
function calculate1() {
    var sum = +colElem1.value;
    if (vesElem1.value == '0.9'){var price1='340';var summ=parseInt(sum)*price1;}
    if (vesElem1.value == '2.5'){var price1='857';var summ=parseInt(sum)*price1;}
    if (vesElem1.value == '9'){var price1='2816';var summ=parseInt(sum)*price1;}
    document.getElementById('priceframe1').innerHTML=summ;
}
Добавлено через 47 секунд
Проблема в 24 ой строке js

Добавлено через 10 минут
http://jsfiddle.net/3vvq6fgg/ пример
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2015, 20:17
Ответы с готовыми решениями:

Не работает событие onclick
Собственно говоря у меня есть в хтмле код: &lt;script src=&quot;javascript.js&quot;&gt;&lt;/script&gt; &lt;input...

Событие onclick не работает
Помогите, пожалуйста, разобраться. Не могу понять почему не работает: &lt;!DOCTYPE html PUBLIC...

Не работает событие onclick в хроме
В хроме не срабатывает событие onclick: &lt;option title=images/png.png&quot; class=&quot;optionAddTC&quot;...

Не работает событие "onClick"
Не работает событие &quot;onClick&quot; если прописать его в JS. Как с ним работать? Пример: var a =...

3
6 / 6 / 0
Регистрация: 17.08.2012
Сообщений: 170
03.08.2015, 21:05 2
Ну потому что вы получаете массив
HTML5
1
<input type="radio" name="ves">
К каждому элементу нужно присвоить обработку события onClick, т.е. [0],[1],[2].

Вот, код теперь работает:
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
function getChar(event) {
    if (event.which == null) {
        if (event.keyCode < 32) return null;
        return String.fromCharCode(event.keyCode) // IE
    }
    if (event.which != 0 && event.charCode != 0) {
        if (event.which < 32) return null;
        return String.fromCharCode(event.which)
    }
    return null; 
}
/*1ый элемент*/
    var form1 = document.forms.form_1;
    var colElem1 = form1.elements.pcs;
    var vesElem1 = form1.elements.ves;
    colElem1.onkeypress = function(e) {
        e = e || event;
          var chr = getChar(e);
          if (e.ctrlKey || e.altKey || chr == null) return;
          if (chr < '0' || chr > '9') return false;
    }
    colElem1.onkeyup = calculate1;
    colElem1.oninput = calculate1;
    vesElem1[0].onclick = calculate1;
     vesElem1[1].onclick = calculate1;
     vesElem1[2].onclick = calculate1;
    colElem1.onpropertychange = function() { 
      event.propertyName == "value" && calculate1();
    }
function calculate1() {
    var sum = +colElem1.value;
    if (vesElem1.value == '0.9'){var price1='340';var summ=parseInt(sum)*price1;}
    if (vesElem1.value == '2.5'){var price1='857';var summ=parseInt(sum)*price1;}
    if (vesElem1.value == '9'){var price1='2816';var summ=parseInt(sum)*price1;}
    document.getElementById('priceframe1').innerHTML=summ;
}
1
0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 112
03.08.2015, 21:25  [ТС] 3
g3nchik, Спасибо большое. Не сможете совет дать, а как можно код минимизировать, если форм будет скажем 10?
0
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
04.08.2015, 08:26 4
Айдар94, я бы на вашем месте использовал делегирование - вешаем обработчик на родителе, и там уже решаем какую функцию нужно выполнить


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var form; // ссылка на нашу форму, их может быть даже несколько, тогда просто проходим по массиву циклом
 
var element1ClickHundler = function () {} // обработчик для одного типа элементов
var element2ClickHundler = function () {} // обработчик для другого типа элементов
 
// обработчик, который будет делегировать события для разных элементов
var formClickHundler = function (e) {
    var e = e || event;
    var trg = e.target || e.srcElement // определяем, на каком элементе сработало событие
 
    if(trg.getAttribute("name") == "name1") element1ClickHundler ();
    else if(trg.getAttribute("name") == "name2") element2ClickHundler ();
    /* и т.д. из за магического всплытия, даже нажав на радиокнопку, 
        сработает событие на форме, оно и решит, что нужно делать */
};
 
form.onclick = formClickHundler; // применяем
1
04.08.2015, 08:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2015, 08:26
Помогаю со студенческими работами здесь

Событие onclick.
Здравствуйте. Столкнулся с проблемой на одном из сайтов для проведения чемпионатов. Так вот, там...

Событие onclick
Ребята я у меня наверно самый глупый вопрос, но блин пытался по разному вписать не получилось. В...

Событие onclick для php
описываю суть проблемы: в php форме есть элемент button $this-&gt;addElement('Button',...

Событие onclick у области изображения
Что для этого нужно использовать?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru