Reputation: 31
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
Upvotes: 3
Views: 961
Reputation: 388316
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;
};
};
}
Upvotes: 3
Reputation: 31
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 have extended my if statement with an else if and it stopped working...thought i had it
Upvotes: 0
Reputation: 8488
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;
Upvotes: 1