аргументы функций JavaScript

0

Создали базовую форму, три выпадающих списка и кнопку. im tryn умножить три значения в нижестоящих списках. Мне нужно передать данные до функции. Я запустил код, просто получаю 0 в качестве результата? Я не думаю, что я передаю данные от до функции правильно?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>

<body>
<script>
function multiply(number1, number2, number3)
{
    var firstnum=0;
    var secondnum=0;
    var thirdnum=0;
    var answer;
    firstnum=parseInt(number1);
    secondnum=parseInt(number2);
    thirdnum==parseInt(number3);
    answer=(firstnum*secondnum*thirdnum);
    alert(answer)
}

</script>

<form name="Example1">
Number 1:
<select id="num1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
Number 2:
<select id="num2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
Number 2:
<select id="num3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
<input type=button value="muliply" onclick="multiply(num1.value, num2.value, num3.value)" />
</form>
</body>
</html>
  • 0
    Пожалуйста, попробуйте проверить правильность синтаксиса всегда ... @ Фрэнсис Галл
Теги:

2 ответа

4
Лучший ответ

Ваша проблема:

thirdnum==parseInt(number3); это сравнение, а не задание, поэтому thirdnum всегда будет 0.

Поскольку вы умножаетесь на thirdnum, а все × 0 равно 0, вы всегда будете получать 0 в качестве вывода.

Изменить == на =.

Это было бы подобрано, если бы у вас был QAed ваш код с JS Hint.


Ваши плохие практики, которые вы должны исправить:

  1. num1.value предполагает, что глобальные переменные JS будут созданы для каждого элемента с id. Не предполагайте, что используйте document.getElementById
  2. parseInt(number1) не имеет оснований. Всегда указывайте используемую систему чисел (обычно базовую 10), поэтому она не выводится из данных для неожиданных результатов: parseInt(number1, 10);
  3. <form name="Example1">, атрибут name в формах является наследием до того, как атрибут id появился правильно. Используйте id для идентификации элементов для кода на стороне клиента.
  4. Атрибуты onclick плохо работают над разделением проблем. Используйте addEventListener (или библиотеку, такую как YUI или jQuery, если вам нужно поддерживать старые версии IE).
0

ОК, вы получите 0 как результат из-за этого

thirdnum==parseInt(number3);

в вашей функции multiply

Измените его на

thirdnum=parseInt(number3);

И вам должно быть хорошо идти

Вот демонстрация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню