2015-05-14 12 views
3

ниже функции, кажется, не работает ..кнопка радио проверил JavaScript - нет JQuery

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


    }; 

     } 

как-то «если» параметр возвращает ложь, но я получил элемент со свойством проверил ... им решений простой калькулятор ... ниже 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> 

им до сих пор изучают основы JavaScript поэтому им не то, что inetrested в JQuery в данный момент ... все ответы приветствуются .. .than ks

ответ

3

checked свойство будет иметь значение true/false, поэтому вам нужно получить проверочное радио, а затем посмотреть, является ли его идентификатор Add (у вас нет значения, назначенного для радиоэлементов, вместо этого у них есть id).

Таким же образом output является входным элементом, так что вам нужно присвоить свою ценность

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


    }; 

} 
+0

@DhavalMarthak да вы правы –

+0

'' currentOperator сам держат 'id' так это shud be 'currentOperator ==" Добавить "' – Zee

+0

@ Sourabh- да только что скорректировано –

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

неправильно. Он может иметь только 2 значения true или false. Вы можете проверить это нравится:

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

Также output = add;

изгоняется быть

output.value = add; 
0

изменения выхода = добавить; - output.value = add;

0
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; 
}; 

я расширил мое заявление, если с другой, если и он перестал работать ... думал, что я имел это