当前位置: 首页 > 知识库问答 >
问题:

是否有JavaScript函数来确定检查哪个无线电输入并使用该无线电输入的值发出警报?[副本]

洪光霁
2023-03-14

理论上,我可以使用for循环在各种无线电输入上循环,以查看哪个已检查,然后警告已检查无线电输入的值,但该功能仅在选择第一个无线电输入时起作用。

我的最终目标是为客户建立一个报价表,但我在第一个障碍上遇到了困难。使用“警报”是唯一看到任何结果的尝试(我尝试了console.log、console.dir等,我已经使用chrome控制台/调试器工作了数小时,但没有任何效果。如果我有一个带有默认检查(checked=“checked”)的收音机,它也会失败,除非它是我选择的第一个无线电输入)。甚至下面的JS也是我在StackOverflow上发现的一个问题(不是重复的),OP声称它可以工作。

const radioButtonValue = radioName => {
      var radioButtons = document.getElementsByName(radioName);
      for (var i = 0; i < radioButtons.length; i++) {
        if (radioButtons[i].checked) {
          return radioButtons[i].value;
        } else {
          return "no value";
        }
      }
    };

    const getValues = () => {
      var distance = radioButtonValue("distanceInput");
      alert(distance);
    };
<form>
      <input name="distanceInput" type="radio" value="d1" />0-9km
      <input name="distanceInput" type="radio" value="d2" />10-19km
      <input name="distanceInput" type="radio" value="d3" />20-29km
      <input name="distanceInput" type="radio" value="d4" />30-39km
      <input name="distanceInput" type="radio" value="d5" />40-49km
      <input name="distanceInput" type="radio" value="d6" />50-59km
      <input name="distanceInput" type="radio" value="d7" />60-69km
      <input name="distanceInput" type="radio" value="d8" />70-79km
      <input name="distanceInput" type="radio" value="d9" />80-89km
    </form>
   <button onclick="getValues()">Get</button>

当我单击第一个无线电输入并调用getVales();我被警告的值"d1",但当我单击任何其他我看到"no value"。

共有3个答案

阎德辉
2023-03-14

一个简单的方法是给单选按钮一个类并使用以下查询选择器

实例

document.getElementById('btn').onclick = (e) => {
  const val = document.querySelector('.radio:checked').value;
  console.log(val);
};
<form>
  <input type="radio" name="test" class="radio" value="One" />
  <input type="radio" name="test" class="radio" value="Two" />
  <input type="radio" name="test" class="radio" value="Three" />
</form>
<button id="btn">Get Value</button>

杜禄
2023-03-14

是的,有这样一个功能。当您访问表单元素的集合上的名称时,对于单选按钮,您将返回一个具有属性的特殊无线节点列表

在您的情况下:

document.querySelector("form").elements["distanceInput"].value;
湛鸿
2023-03-14

这比这简单得多。无需循环if/then。只需使用。querySelector()以隔离选中的单选按钮。

document.querySelector("button").addEventListener("click", function(){
  // Get the checked radio button
  let selected = document.querySelector("form input[name='distanceInput']:checked");

  console.log(selected.value);
});
<form>
  <input name="distanceInput" type="radio" value="d1" />0-9km
  <input name="distanceInput" type="radio" value="d2" />10-19km
  <input name="distanceInput" type="radio" value="d3" />20-29km
  <input name="distanceInput" type="radio" value="d4" />30-39km
  <input name="distanceInput" type="radio" value="d5" />40-49km
  <input name="distanceInput" type="radio" value="d6" />50-59km
  <input name="distanceInput" type="radio" value="d7" />60-69km
  <input name="distanceInput" type="radio" value="d8" />70-79km
  <input name="distanceInput" type="radio" value="d9" />80-89km

<button type="button">Get selected radio button value</button>
</form>
 类似资料:
  • 本文向大家介绍aurelia 绑定到无线电输入,包括了aurelia 绑定到无线电输入的使用技巧和注意事项,需要的朋友参考一下 示例 基本收音机 带对象阵列的收音机 带布尔的收音机            

  • 所以im生成的输入字段很少,这就起作用了。 但我无法获得这个生成的输入字段的值。我可以让onchange工作,但我还是抓不到任何值。 所以我用jQuery尝试了很多方法,但都不奏效。我没有被迷惑。 这是生成的字段 看起来就像 那也很管用。 但我无法获得该输入字段的id

  • 问题内容: 我正在为将来的项目评估angularjs。我需要做的一件事情是通过选择适当的“页面”无线电输入来显示“频道”信息的不同页面。此外,还可以从一组“页面集”无线电输入中选择页面按钮的范围。 下面的工作示例具有一组32个通道,通过“设置”和“页面”无线电输入的组合选择了可见的通道组,总共提供2 * 4页,每个通道4个通道。 我的问题是如何使用创建页面/页面集单选输入。我已经尝试过以下方法:

  • 我正在尝试为自己做一个测验,我想要选定的单选按钮的数据值。在我解释这个问题之前,让我先告诉你发生了什么: 正如你所看到的,它只显示了我选择的第一个anwer。但我想要所有选定的答案。以及它们的数据值。所以我可以将它们作为数组或对象发送到php文件中。 这是我的代码: 有人知道为什么只显示一个吗?因为我搜索了一段时间,很多人推荐这个选项。 无法获取输入无线电选择值 我也尝试了这个:如何获得所选单选按

  • 我目前正在尝试为一个我为好玩而开发的网站创建一个登录/创建帐户页面。在创建帐户表单中,我有一个用户名、姓名、电子邮件、密码和验证密码的输入字段。我在输入字段中也有模式,以便用户生成有效的帐户信息。以下为表格: 澄清:用户名模式要求您的用户名只有大写和小写字母和数字,并且必须至少包含5个字符,最多包含40个字符。电子邮件要求您输入有效的电子邮件地址模式。密码要求至少包含8个字符,并且必须包含大小写字

  • 问题内容: 我只是想知道如何以正确的方式在单选按钮上使用新的HTML5输入属性“ required”。是否每个单选按钮字段都需要下面的属性,或者只有一个字段就足够了吗? 问题答案: 为无线电组的至少一个输入设置属性。 所有输入的设置更加清晰,但不是必需的(除非动态生成单选按钮)。 要对单选按钮进行分组,它们必须全部具有相同的值。这样一次只能选择一个,并应用于整个组。 另请注意: 为了避免对是否需要