确认单选按钮选择

Confirmation of radio button choice

本文关键字:选择 单选按钮 确认      更新时间:2023-09-26

我一直在尝试在JavaScript中为我正在处理的表单创建一个确认框,以便用户必须确认他们选择的单选按钮选项。我已经设法使验证正常工作,但我无法让单选按钮的名称显示在确认框中(相反,它说"您选择了未确认,这是正确的吗?"无论我选择哪个选项)。这是代码的Javascript验证部分;我哪里做错了?

var checked = null;
var inputs = document.getElementsByName('choices');
for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].checked) {
    checked = inputs[i].value;
    break;
  }
}
if(checked==null)
{
alert('Please choose an option.');
return false;
}
else{
return confirm('You have chosen '+ checked.value + ', is this correct?');
}

编辑:这是我的单选按钮的HTML,希望这有帮助

<tr>
        <td id="options">Options</td>
        <td id="gcse"><input type="radio" name="options" value="GCSE" /> GCSE</td>
    <tr>
        <td></td>
        <td id="btec"><input type="radio" name="options" value="BTEC" /> BTEC</td></tr>
    <tr>
        <td></td>
        <td id="as"><input type="radio" name="options" value="AS" /> AS Level</td></tr>
    <tr>
        <td></td>
        <td id="alevel"><input type="radio" name="options" value="alevel" /> A2 Level</td> </tr>

实际上你的脚本几乎可以工作。但是你走的一步太多了。

您请求input.value.value将导致undefined

如果将checked = inputs[i].value;更改为checked = inputs[i]则代码将正常工作。

但是,如果选择使用 document.getElementsByName('choices');则单选元素的名称必须与 choices 匹配。

在此示例中的单选按钮中添加了一个简单的单击处理程序,以显示差异:

function check()
{
var checked = null;
var inputs = document.getElementsByName('choices');
for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].checked) {
    checked = inputs[i];
    break;
  }
}
if(checked==null)
{
alert('Please choose an option.');
return false;
}
else{
return confirm('You have chosen '+ checked.value + ', is this correct?');
}
  }
<input onclick="check()" type="radio" name="choices" value="value 1">Value 1 <br />
<input onclick="check()" type="radio" name="choices" value="value 2">Value 2

它们是代码中的一个小错误,只需在 else 条件下编写此内容即可

返回确认("您已选择"+ 选中+",这是正确的吗?

只需从 checked.value 中删除 .value

这是因为您已经收集了上面的值并且您正在做像这样的东西...

checked.value == input[i].value.value

这就是为什么你没有得到你需要的东西

如果没有看到你的 HTML,就很难提出解决方案。但是您可以通过调用 checked.name 来访问输入标签的名称。