0

I am adding two number using JS function, when I put the values 1st time for example 3 + 4 my output come as "Your answer is 7" till here it's fine. However without refreshing when I put the different values 10 + 10 then my output become "Your answer is 7 10" it does not replace 7 instead it get added to that paragraph. what I need to change in code so I can get one value answer every time.

Many thanks in advance, Dhanajay

<p> Add two number  </p>

<label for="value1">Enter Number 1</label>
<input type="text" id="value1" />
<br />
<br />

<label for="value2">Enter Number 2</label>
<input type="text" id="value2" />
<br />
<br />
<button id="calculate" type="button" onclick="myFunction()">Calculate</button>
<p id="answer">Your answer is </p>



<script type="text/javascript">

    function myFunction() {
        var y = document.getElementById("value1").value;
        var z = document.getElementById("value2").value;
        var x = +y + +z;

        document.getElementById("answer").innerHTML = document.getElementById("answer").innerHTML + " " + x;
    }

</script>

1
  • Do you understand what the last line of myFunction() does? Commented Oct 16, 2015 at 10:21

9 Answers 9

2

<p> Add two number  </p>

<label for="value1">Enter Number 1</label>
<input type="text" id="value1" />
<br />
<br />

<label for="value2">Enter Number 2</label>
<input type="text" id="value2" />
<br />
<br />
<button id="calculate" type="button" onclick="myFunction()">Calculate</button>
<p id="answer">Your answer is </p>



<script type="text/javascript">

    function myFunction() {
        var y = document.getElementById("value1").value;
        var z = document.getElementById("value2").value;
        var x = (+y + +z);

        document.getElementById("answer").innerHTML =  x;
    }

</script>

Sign up to request clarification or add additional context in comments.

Comments

1

Use another element to hold the answer like this:

function myFunction() {
  var y = document.getElementById("value1").value;
  var z = document.getElementById("value2").value;
  var x = +y + +z;

  document.getElementById("output").innerText = x;
}
<p>Add two number</p>

<label for="value1">Enter Number 1</label>
<input type="text" id="value1" />
<br/>
<br/>

<label for="value2">Enter Number 2</label>
<input type="text" id="value2" />
<br/>
<br/>
<button id="calculate" type="button" onclick="myFunction()">Calculate</button>
<p id="answer">Your answer is <span id="output"></span>
</p>

Comments

1

Hope this will be useful

function myFunction() {
     var y=null;
     var z=null;
         y = document.getElementById("value1").value;
         z = document.getElementById("value2").value;
        var x = parseInt(y) + parseInt(z);

        document.getElementById("ans").innerHTML = x;
    }

HTML

<p> Add two number  </p>

<label for="value1">Enter Number 1</label>
<input type="text" id="value1" />
<br />
<br />

<label for="value2">Enter Number 2</label>
<input type="text" id="value2" />
<br />
<br />
<button id="calculate" type="button" onclick="myFunction()">Calculate</button>
<p>Your answer is </p> <span id='ans'></span>

Comments

0

change this:

document.getElementById("answer").innerHTML = document.getElementById("answer").innerHTML + " " + x;

to this:

document.getElementById("answer").innerHTML = x;

1 Comment

Hi after changing it to document.getElementById("answer").innerHTML = x; my output is only showing the calculated number. What I exactly want that it also show the paragraph text "your answer is x" (where x is the calculated number). I figured it out that changing <p id="answer">Your answer is </p> to <p>Your answer is <span id="answer"></span> </p> and then putting your suggested code worked for me. Thanks :)
0

Your last line says this

 document.getElementById("answer").innerHTML = document.getElementById("answer").innerHTML + " " + x;

It is appending the result to the field.

Change it to simply be

 document.getElementById("answer").innerHTML = x;

Comments

0

You need to parse the value in answer to int and then add x to accumulate your answer plus the new number:

document.getElementById("answer").innerHTML = parseInt(document.getElementById("answer").innerHTML) + x;

Comments

0
    var x=0;
function myFunction() {
        var y = document.getElementById("value1").value;
        var z = document.getElementById("value2").value;
         x += parseInt(y) + parseInt(z);
console.log(x);
        document.getElementById("answer").innerHTML = document.getElementById("answer").innerHTML + " " + x;
    }

enter link description here

Comments

0

Replace this

document.getElementById("answer").innerHTML = document.getElementById("answer").innerHTML + " " + x;

with this

document.getElementById("answer").innerHTML = " Your answer is " + x;

Comments

-1

You need to purge the variables after calculation. Or else you're only appending the current definition

...
var x = +y + +z;    
delete y;
delete z;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.