【问题标题】:radio button checked javascript - no jquery单选按钮检查了javascript - 没有jquery
【发布时间】:2015-07-25 19:23:59
【问题描述】:

下面的功能似乎不起作用..

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


    };

        }

“if”参数以某种方式返回 false,但是,我检查了属性的元素...我正在制作一个简单的计算器...下面是 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 的基础,所以我现在对 jquery 没有那么感兴趣...感谢所有答案...谢谢

【问题讨论】:

    标签: javascript button radio checked


    【解决方案1】:

    checked 属性的值为真/假,因此您需要获取选中的收音机,然后查看其 id 是否为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;
            };
    
    
        };
    
    }
    

    【讨论】:

    • currentOperator 本身持有id 所以它应该是currentOperator== "Add"
    • 好的,所以我用 else if 扩展了我的 if 语句,它停止工作......我以为我有它
    • @UniWorld jsfiddle.net/arunpjohny/k96w03nm/2 - 你是一个 if 条件来查看它是否被检查,然后检查 id,如小提琴所示
    • @Arun P Johny - 谢谢...我刚刚意识到逻辑结构化代码是关键...这对于像我这样的初学者来说有点困难...
    【解决方案2】:
    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;
    };
    

    我已经用 else if 扩展了我的 if 语句,但它停止了工作......我以为我有它

    【讨论】:

      【解决方案3】:

      改变 输出=添加; 到 output.value = 添加;

      【讨论】:

        【解决方案4】:
        if(currentOperator.checked == "Add"){..
        

        错了。它只能有两个值truefalse。你可以像这样检查它:

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

        还有output = add;

        应该是

         output.value = add;
        

        【讨论】:

          猜你喜欢
          • 2012-03-07
          • 1970-01-01
          • 1970-01-01
          • 2016-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-07
          • 1970-01-01
          相关资源
          最近更新 更多