2016-12-19 7 views
0

Я практикую код java-скрипта, но имею проблему при реализации этого кода.javascript error [object HTMLInputElement] [object HTMLInputElement]

<html> 
<body> 
<script> 
function f2(){ 
var a=document.getElementById("a"); 
var b=document.getElementById("b"); 
var c=a+b; 
document.write(c); 
} 
</script> 

Enter A:<input id="a" type="text" name="txt1" ><br> 
Enter B:<input id="b" type="text" name="txt2" ><br> 
<button type="button" onclick="f2()">Sum Here</button> 
</body> 
</html> 

Когда я сложить два числа, то это показывает ошибку, как [объект HTMLInputElement] [объект HTMLInputElement].

+4

вам нужно получить значение 'с = a.value + b.value; '' –

+1

Использование .value' для получения значений. Также обратите внимание, что значения будут выбраны как строка. – Rajesh

+0

Возможный дубликат [Как получить общую сумму из значений полей ввода с помощью Javascript?] (Http://stackoverflow.com/questions/13540751/how-get-total-sum-from-input-box-values-using-javascript) – Rajesh

ответ

2

Свойство value входных элементов используется для извлечения значения на вход. Это значение будет строкой.

Поскольку вы хотите добавить номера, лучше проверить, введены ли введенные числа, чтобы избежать нежелательных ошибок. Существует много способов проверить это, я использовал его, добавив знак «+» перед введенным строковым значением, это преобразует число в строку в число и затем проверит для NaN.

здесь скрипка и код https://jsfiddle.net/7sgcmfu8/

<script> 
function f2(){ 
var a= +document.getElementById("a").value; 
var b= +document.getElementById("b").value; 
if(!isNaN(a) && !isNaN(b)){ 
    document.write(a+b); 
}else{ 
    document.write("enter numbers"); 
} 
} 
</script> 

Enter A:<input id="a" type="text" name="txt1" ><br> 
Enter B:<input id="b" type="text" name="txt2" ><br> 
<button type="button" onclick="f2()">Sum Here</button> 
+0

Хорошее решение +1 ударил с моей стороны –

1
<html> 
<body> 
<script> 
function f2(){ 
var a=parseInt(document.getElementById("a").value); 
var b=parseInt(document.getElementById("b").value); 
var c=a+b; 
document.write(c); 
} 
</script> 

Enter A:<input id="a" type="text" name="txt1" ><br> 
Enter B:<input id="b" type="text" name="txt2" ><br> 
<button type="button" onclick="f2()">Sum Here</button> 
</body> 
</html> 
+0

'parseInt()'? OP сказал «числа», а не «целые числа». – nnnnnn

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