Radio button marked javascript - no jquery

below function doesn't seem to work.

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 returns false, but i got a checked property ... im doing a simple calculator ... below 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 basics of javascript so im not that inetrested in jquery at the moment ... all answers are appreciated ... thanks

+3


source to share


4 answers


checked

the property will be true / false, so you need to get the checked radio station and then see if its id Add

(you don't have a value assigned to the radio elements, they have an id instead).

Likewise output

is an 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;
        };


    };

}

      

+3


source


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

      

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;

      

+1


source


change output = add; in output.value = add;

0


source


for (var i=0; i<operand.length; i++){
var currentOperand = operand[i];
if (currentOperand.checked && currentOperand.id == "Add") {
var add = firstDig + secondDig;
output.value = add;
}else if (currentOperand,checked && currentOperand.id == "Subt"){
var subt = firstDig - secondDig;
output.value = subt;
};

      

I expanded my if-expression with else if it stopped working too ... thought I have

0


source







All Articles