NoahLE
NoahLE

Reputation: 325

My JQuery script is not retrieving form text values

I'm trying to get the data from a form and use the values for a final result.

The problem is (at least what it looks like when I'm debugging) is no values are being retried and stored in the vars I've created.

Here's the form:

<form>
    <p>
       <label for="numDigits">Number of Digits: </label>
       <input type="text" id="numDigits" name="numDigits" />
    </p>
    <p>
        <label for="num1">First Number: </label>
        <input type="text" id="num1" name="num1" />
    </p>
    <p>
        <label for="num2">Second Number: </label>
        <input type="text" id="num2" name="num2" />
    </p>
    <p>
        <label for="num3">Third Number: </label>
        <input type="text" id="num3" name="num3" />
    </p>
    <p>
        <input type="button" name="calc" id="calc" value="Calculate" />
    </p>
    <p id="result">Result will be displayed here when the button is pressed.</p>
</form>

and the JQuery script

$("#calc").on('click', function(){
    var a = Number($("#numDigits").val());
    var x = Number($("#num1").val());
    var y = Number($("#num2").val());
    var z = Number($("#num3").val());

    var total = a * 3 + x + ((a + x - y) % a) + ((a + z - y) % a);
    $("#result").html("<p class='id'>" + total + "</p>");
});

Thanks in advance for the help!

Edit: I updated the code to the working version.

Upvotes: 1

Views: 62

Answers (2)

D.Evangelista
D.Evangelista

Reputation: 6543

Its seems to work well: fiddle

But note that, if you want to manipulate the input as numbers, you should write

var a = Number($("#numDigits").val());
var x = Number($("#num1").val());
var y = Number($("#num2").val());
var z = Number($("#num3").val());

Upvotes: 1

Alex Shilman
Alex Shilman

Reputation: 1547

Replace the replaceWith() with html(). I have The DEMO working:

$("#calc").click(function(){
var a = $("#numDigits").val();
var x = $("#num1").val();
var y = $("#num2").val();
var z = $("#num3").val();

var total = a * 3 + x;
total += ((y - x) % a);
total += ((y - z) % a);
$("#result").html(total);
});

Upvotes: 1

Related Questions