Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с последовательными onclick на картинки (https://javascript.ru/forum/dom-window/27999-pomogite-s-posledovatelnymi-onclick-na-kartinki.html)

СергейСВ 02.05.2012 17:53

Помогите с последовательными onclick на картинки
 
Добрый день! Прошу о помощи.
Есть несколько картинок, под которыми подразумеваются коэффициенты.
Человек выбирает в каждой строке по одной картинке событием onclick.
Внизу картинок он в текстовое поле вводит необходимую цифру и нажимает на кнопку "Рассчитать". По нажатии на эту кнопку производится вычисление: сумма выбранных коэффициентов умножается на цифру из текстового поля.

Не понимаю, как по ONCLICK на картинках накопить сумму коэффициентов(

<FORM>
<INPUT TYPE=IMAGE SRC='images\1.jpg' HEIGHT=40 WIDTH=40 STYLE='position:relative; top:0; left:15; border: thin solid black'>
<INPUT TYPE=IMAGE SRC='images\2.jpg' HEIGHT=40 WIDTH=40 STYLE='position:relative; top:0; left:40; border: thin solid black'>
<BR></BR>
<INPUT TYPE=IMAGE SRC='images\3.jpg' HEIGHT=40 WIDTH=40 STYLE='position:relative; top:0; left:15; border: thin solid black'>
<INPUT TYPE=IMAGE SRC='images\4.jpg' HEIGHT=40 WIDTH=40 STYLE='position:relative; top:0; left:40; border: thin solid black'>
<BR></BR>

Общая площадь:
<INPUT TYPE=text ID=txt_field NAME=txt_field SIZE=4>
<INPUT TYPE=button VALUE='Рассчитать' ONCLICK="kvadrat(txt_field.value)">
</FORM>

<P ID=par NAME =par></p>


<SCRIPT>
function kvadrat(sVal)
{ fFund = parseFloat(sVal);
par.innerText= "Стоимость " + fFund + " руб.";}
</SCRIPT>

bes 02.05.2012 20:01

Цитата:

Сообщение от СергейСВ
Не понимаю, как по ONCLICK на картинках накопить сумму коэффициентов(

Используйте некоторую внешнюю переменную, в неё кликами и накапливайте.

СергейСВ 02.05.2012 23:21

Что-то не работает

...
<INPUT TYPE=IMAGE SRC='images\1.jpg' HEIGHT=40 WIDTH=40 STYLE='position:relative; top:0; left:15; border: thin solid black' ONCLICK= "chislo()">
....
<SCRIPT type="text/javascript">
a = 0
function chislo()
{
a = a + 1.8;
}

function kvadrat(sVal)
{ var fFund = parseFloat(sVal);
alert(a);
fFund = a*fFund;
par.innerText= "Стоимость " + fFund + " руб.";}

</SCRIPT>

Переменная "а" все равно остается равной нулю

bes 03.05.2012 11:11

Цитата:

Сообщение от СергейСВ
Переменная "а" все равно остается равной нулю

Всё нормально работает

var a = 0;
alert(a);

function chislo() {
  a = a + 1.8;
  alert(a);
}

chislo();
chislo();

СергейСВ 03.05.2012 11:36

Далее идет функция, но в ней переменная "а" равна нулю, после всех "накоплений"

function kvadrat(sVal)
{ var fFund = parseFloat(sVal);
alert(a);
fFund = a*fFund;
par.innerText= "Стоимость " + fFund + " руб.";}

dmitriymar 03.05.2012 11:42

Цитата:

Сообщение от СергейСВ
Далее идет функция, но в ней переменная "а" равна нулю, после всех "накоплений"

Цитата:

Сообщение от bes
01 var a = 0;

ответ очевиден. 0*число=0

bes 03.05.2012 11:58

Цитата:

Сообщение от СергейСВ
Далее идет функция, но в ней переменная "а" равна нулю, после всех "накоплений"

Пример ниже ещё раз подтверждает, что всё работает.
Дело в том, что вы неправильно получаете доступ к элементам (например, надо не par.innerText, а document.getElementById('par').innerText)

<script>
var a = 0;

function chislo() {
  a = a + 1.8;
}
</script>

<button onclick="chislo(); alert(a)">
Fill
</button>

bes 03.05.2012 12:10

Цитата:

Сообщение от bes
Дело в том, что вы неправильно получаете доступ к элементам (например, надо не par.innerText, а document.getElementById('par').innerText)

Хотя для name="par", par.innerText также срабатывает (почему-то всегда считал, что надо использовать document.getElementByName('') для обращения к элементу по значению его атрибута name).

СергейСВ 03.05.2012 12:56

Спасибо за разъяснения

СергейСВ 03.05.2012 13:13

Разобрался: не работало из-за того, что картинки и события onclick были внутри FORM


Часовой пояс GMT +3, время: 18:16.