javascript - 我需要使用 DOM 计算一些选中的单选按钮的值

标签 javascript html

到目前为止我的代码是: HTML

<input type="radio" name="age" value="0">1-25
<input type="radio" name="age" value="5">26-27
<input type="radio" name="age" value="7">28-29

<input type="radio" name="bmi" value="0">0-25
<input type="radio" name="bmi" value="0">26-30
<input type="radio" name="bmi" value="9">31-35

所以我需要获取选中的单选按钮的值并计算它们

Javascript 作为我得到的第一个答案

function CalculateValue(){
  //call getAgeValue(), getBmiValue() here and do desired calculations here
}

function getAgeValue()
{
    for (var i = 0; i < document.getElementsByName('age').length; i++)
    {
        if (document.getElementsByName('age')[i].checked)
        {
            return document.getElementsByName('age')[i].value;
        }
    }
}

function getBmiValue()
{
    for (var i = 0; i < document.getElementsByName('bmi').length; i++)
    {
        if (document.getElementsByName('bmi')[i].checked)
        {
            return document.getElementsByName('bmi')[i].value;
        }
    }

最佳答案

利用原版 document.querySelector

function doCalculation(ageValue, bmiValue) {
    // whatever
    return ageValue + bmiValue;
}

function getRadioValue(radio_name) {
    return ( // parenthesis to let us do an OR
      document.querySelector('input[type="radio"][name="' + radio_name + '"]:checked')
      || // or if none is checked
      {} // so we don't get an error
    ).value;
}

function handlerForButton(e) {
    var age = +getRadioValue('age'),
        bmi = +getRadioValue('bmi'),
        foo = doCalculation(age, bmi);
    // do whateverwith foo
    console.log(foo);
}

// after elements exist
document.querySelector('input[type="button"][value="Calculate"]')
    .addEventListener('click', handlerForButton);

DEMO

您可能会发现使用ids来查找元素比使用其他属性查找元素更容易。这也会提高性能

关于javascript - 我需要使用 DOM 计算一些选中的单选按钮的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586672/

相关文章:

javascript - 如何使用 JavaScript 正则表达式捕获 CSS 多行注释 block

javascript - 返回了 Google 距离矩阵 ZERO_RESULTS

javascript - 我的 jquery 切换出了什么问题

javascript - 单选按钮选择时显示 "Correct"

html - css - 动态 div 高度

javascript - Express 中的路由处理程序没有调用任何东西?

javascript - 通过 chrome 扩展在外部网页上填写表格

javascript - AngularJS 用户界面路由器 : how to resolve typical data globally for all routes?

javascript - 使用 JS 创建的 SVG 被裁剪

html - 如何在语义上将标题添加到列表