Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

radio button checked javascript - no jquery

below function seems to be not working..

function myCalculator () {

    var operator = document.getElementsByName("operator");
    var output = document.getElementById("output");
    var firstDig = parseInt(document.getElementById("firstDig").value);
    var secondDig = parseInt(document.getElementById("secondDig").value);   

    for (var i=0; i<operator.length; i++){

        var currentOperator = operator[i].id;

        if(currentOperator.checked == "Add"){
            var add = firstDig + secondDig;
                output = add;
        };


    };

        }

somehow the "if" parameter is returning false but, i got the element with the property checked...im making a simple calculator...below is the html...

<fieldset>

    <label>Enter Number:</label>
    <input type="text" id="firstDig" />
    <input type="text" id="secondDig" />
        <br/> <br/>
    <label>Select Operator:</label>
    <br/><br />

    <input type="radio" id="Add" name="operator" checked="checked" />
        <label for = "Add">Add</label>

    <input type="radio" id="Subt" name="operator" />
        <label for = "Subt">Subtract</label>

    <input type="radio" id="Divi" name="operator" />
        <label for = "Divi">Divide</label>

    <input type="radio" id="Multi" name="operator" />
        <label for = "Multi">Multiply</label>

</fieldset>


<fieldset>
    <p>RESULT</p>
    <input type="text" id="output" />
    <button type="button" onclick="myCalculator()">Calculate</button>
</fieldset>

im still learning the foundations of javascript so im not that inetrested in jquery at the moment...all answers are appreciated...thanks

like image 230
UniWorld Avatar asked May 01 '26 03:05

UniWorld


2 Answers

checked property will have the value true/false, so you need to get the checked radio and then see whether its id is Add(You don't have value assigned to the radio elements instead they have id).

In the same way output is a input element, so you need to assign its value

function myCalculator() {

    var operator = document.getElementsByName("operator");
    var output = document.getElementById("output");
    var firstDig = parseInt(document.getElementById("firstDig").value);
    var secondDig = parseInt(document.getElementById("secondDig").value);

    for (var i = 0; i < operator.length; i++) {

        var currentOperator = operator[i],
            result = '';

        if (currentOperator.checked) {
            if (currentOperator.id == "Add") {
                result = firstDig + secondDig;
            } else if (currentOperator.id == "Subt") {
                result = firstDig - secondDig;
            }
            output.value = result;
        };


    };

}
like image 153
Arun P Johny Avatar answered May 02 '26 18:05

Arun P Johny


if(currentOperator.checked == "Add"){..

is wrong. It can only have 2 values true or false. you can check it like:

if(currentOperator == "Add" && operator[i].checked){..

Also output = add;

shud be

 output.value = add;
like image 36
Zee Avatar answered May 02 '26 18:05

Zee



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!