Javascript 如何确认选择的单选按钮?

Javascript 如何确认选择的单选按钮?,javascript,Javascript,我已经创建了三个单选按钮。我想运行一个函数OnClick,要求用户确认选择的单选按钮,并告诉选中的单选按钮值是什么。此外,如果用户未确认选中的单选按钮,则单选按钮将被取消选择。 这是我写过但失败的代码 <input id="a1" type="radio" name="type" value="A1" onClick= "confirmation();" />A1 <input id="a2" type="radio" name="type" value="A2" onClic

我已经创建了三个单选按钮。我想运行一个函数OnClick,要求用户确认选择的单选按钮,并告诉选中的单选按钮值是什么。此外,如果用户未确认选中的单选按钮,则单选按钮将被取消选择。 这是我写过但失败的代码

<input id="a1" type="radio" name="type" value="A1" onClick= "confirmation();" />A1
<input id="a2" type="radio" name="type" value="A2" onClick="confirmation();" />A2
<input id="a3" type="radio" name="type" value="A3" onClick="confirmation();"/>A3

该函数可以更简单。您不必检查所有按钮,因为您可以将当前按钮传递到函数中,如
onclick=“confirmation(this)”
。要取消选中单选按钮,您需要将
checked
属性设置为
false

功能确认(收音机){
var ask=confirm(“您已选择“+radio.value+”作为您的类型\n如果选择了正确的类型,请单击“确定”)
如果(问){
警报(“您单击了确定”);
}
否则{
警报(“您单击了取消”);
radio.checked=false;
}
}
A1
A2

A3
取消选择时,需要循环浏览单选按钮以清除它们。您的代码中还存在一些小语法错误,这些错误已更正如下:

var ty;
function confirmation() {
    if (document.getElementById('a1').checked) {
        ty = document.getElementById('a1').value
        var ask = confirm("You have chosen " + ty + " as your type \n If you have chosen the right type, Click Ok! ")
    }
    if (document.getElementById('a2').checked) {
        ty = document.getElementById('a2').value;
        var ask = confirm("You have chosen " + ty + " as your Examination Level \n If you have chosen the right type, Click Ok! ")
    }
    if (document.getElementById('a3').checked) {
        ty = document.getElementById('a3').value;
        var ask = confirm("You have chosen " + ty + " as your type \n If you have chosen the right type, Click Ok! ")
    }
    if (ask == true) {
        alert("You clicked ok");
    }
    if (ask == false) {
        var elem = document.getElementsByName('type');
        for(var i=0;i<elem.length;i++) elem[i].checked = false;
        alert("You clicked cancel");
    }
}
varty;
功能确认(){
if(document.getElementById('a1')。选中){
ty=document.getElementById('a1')。值
var ask=confirm(“您已选择“+ty+”作为您的类型\n如果您选择了正确的类型,请单击“确定!”)
}
if(document.getElementById('a2')。选中){
ty=document.getElementById('a2')。值;
var ask=confirm(“您已选择“+ty+”作为您的考试级别\n如果您选择了正确的类型,请单击“确定!”)
}
if(document.getElementById('a3')。选中){
ty=document.getElementById('a3')。值;
var ask=confirm(“您已选择“+ty+”作为您的类型\n如果您选择了正确的类型,请单击“确定!”)
}
if(ask==true){
警报(“您单击了确定”);
}
if(ask==false){
var elem=document.getElementsByName('type');

对于(var i=0;i我想你可以把它归结为:

功能确认(obj){
obj.checked?确认(“您选择了”+obj.value+”作为您的类型\n如果您选择了正确的类型,请单击“确定!”)?警报(“您单击了确定”):obj.checked=false:;
}
A1
A2

A3
您可以像这样使用-


功能确认(){
如果(确认(“您确定!”)
{
//做好你的工作
}
其他的
{
返回false;
}
}

如果有助于改进代码,您至少可以使用else@epascarello-Else被高估了;)此代码唯一的问题是,即使他们取消选中确认框,您也会启动确认框。您要先确保它已选中。@斯坦,您如何取消选中收音机?@斯坦不完全正确。检查已选中是多余的,因为当单击事件触发时,我们知道此按钮已选中。我们无法取消选中它。您需要取消选中它以取消。感谢@epascarello的反馈。检查更新的代码。太好了,它可以满足我的需要,而且它要短得多。另外,您为什么要使用obj.values是收音机的值。
A1、A2
var ty;
function confirmation() {
    if (document.getElementById('a1').checked) {
        ty = document.getElementById('a1').value
        var ask = confirm("You have chosen " + ty + " as your type \n If you have chosen the right type, Click Ok! ")
    }
    if (document.getElementById('a2').checked) {
        ty = document.getElementById('a2').value;
        var ask = confirm("You have chosen " + ty + " as your Examination Level \n If you have chosen the right type, Click Ok! ")
    }
    if (document.getElementById('a3').checked) {
        ty = document.getElementById('a3').value;
        var ask = confirm("You have chosen " + ty + " as your type \n If you have chosen the right type, Click Ok! ")
    }
    if (ask == true) {
        alert("You clicked ok");
    }
    if (ask == false) {
        var elem = document.getElementsByName('type');
        for(var i=0;i<elem.length;i++) elem[i].checked = false;
        alert("You clicked cancel");
    }
}