2013-10-03 6 views
0

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

<!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

Пожалуйста, попробуйте проверить синтаксис правильно всегда ... @ Фрэнсис Галль –

ответ

4

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

thirdnum==parseInt(number3); является сравнение, а не назначение, так thirdnum всегда будет 0.

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

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

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


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

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

OK U продолжают получать 0 в результате из-за этого

thirdnum==parseInt(number3); 

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

Изменить это

thirdnum=parseInt(number3); 

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

Адрес demo

Смежные вопросы