Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Помогите с кодом js (https://javascript.ru/forum/server/64970-pomogite-s-kodom-js.html)

Дмитрий Б 17.09.2016 06:24

Помогите с кодом js
 
Вложений: 1
Делаю калькулятор для сайта, в js "чайник", изучаю на ходу.
Суть проблемы: есть форма name="Form1", на ней два поля ввода чисел, id="Editbox1" name="1" и id="Editbox2" name="2", которые мы умножаем и результат выводим в третье поле на этой же форме id="result" name="3", используя формулы
result *= parseFloat(document.getElementById('Editbox1').val ue);
result *= parseFloat(document.getElementById('Editbox2').val ue);
Проблема вот в чем. на форме есть много изображений-кнопок, каждое имеет определенное числовое значение value="" при нажатии на эту кнопку присвоенное число должно умножаться на поле id="result" name="3" с выводом результата в этом поле.
Пробывал присваивать кнопкам одно имя и умножать
result *= parseFloat(document.getElementByName('na').value);
результата нет, не могу понять как привязать onclick к кнопкам, видимо тут проблема?
Файл примерного исходника в теме.

рони 17.09.2016 08:22

Цитата:

Сообщение от Дмитрий Б
document.getElementByName('na').value

getElementByName -- getElementsByName

Цитата:

⚠Возвращается коллекция, а не элемент

Дмитрий Б 17.09.2016 10:25

Где-то тут ошибка
 
Где то тут ошибка, а где не понимаю.Три дня уже сижу.
function changeText0()
{
var Editbox1 = document.getElementById('Editbox1').value; //выцепляем значение value первого вводимого поля
var Editbox2 = document.getElementById('Editbox2').value; //выцепляем значение value второго вводимого поля
var result = Editbox1 * Editbox2
document.getElementById('result').innerHTML = result.toFixed(2);
var button = document.getElementsByName('la'); //определяем какой из пунктов выбран и запоминаем его value в переменную button
button = []; // задаем пустой массив button
if (buttons[i].type == "button" && buttons[i])
button[button.length] = buttons[i].value;
var result = result * button
document.getElementById('result').innerHTML = result.toFixed(2);

Дмитрий Б 17.09.2016 10:26

Кнопки имеют следующий код
<button id="AdvancedButton1" onclick="changeText0()" type="button" style="position:absolute;" name="la" value="500">

рони 17.09.2016 10:52

Дмитрий Б,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Дмитрий Б 17.09.2016 11:02

отформатировать где? в исходнике?

Дмитрий Б 17.09.2016 11:13

Файл с исходником
 
Вложений: 1
Приложил исходник

рони 17.09.2016 11:38

Дмитрий Б,
здесь в сообщении отформатируйте вставлемый вами код
и попробуйте проблемый код показать, прямо здесь

Дмитрий Б 17.09.2016 11:41

<!doctype html>
<html lang="ru">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<meta charset="utf-8">
<script>
 function changeText0()
{
var Editbox1 = document.getElementById('Editbox1').value; //выцепляем значение value первого вводимого поля
var Editbox2 = document.getElementById('Editbox2').value; //выцепляем значение value второго вводимого поля
var result = Editbox1 * Editbox2
 document.getElementById('result').innerHTML = result.toFixed(2);
var button = document.getElementsByName('la'); //определяем какой из пунктов выбран и запоминаем его value в переменную button
		button = []; // задаем пустой массив button
			if (buttons[i].type == "button" && buttons[i]) 
			button[button.length] = buttons[i].value;		 							
	var	result = result * button
		document.getElementById('result').innerHTML = result.toFixed(2);
}		
</script>
</head>
<body>
<form name="Form1" method="post" action="" enctype="text/plain" id="Form1" onsubmit="return ValidateForm1(this)" oninput="changeText0()">
<input type="number" id="Editbox1" style="position:absolute;" name="1" value="0.4">
<input type="number" id="Editbox2" style="position:absolute; name="2" value="0.4">
<button id="AdvancedButton1" onclick="changeText0()" type="button" style="position:absolute;" name="la" value="500">
</button>
<button id="AdvancedButton2" onclick="changeText0()" type="button" style="position:absolute;" name="la" value="400">
</button>
<output type="text" id="result" style="position:absolute;left:810px;top:200px;width:75px;height:24px;line-height:24px;z-index:30;" name="Стоимость" value="" readonly autocomplete="off">
</form>
</div>
</body>
</html>

рони 17.09.2016 11:56

Дмитрий Б,
может заменить button на
<input name="" type="radio">


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