当我选中一个单选按钮时,它返回false选项,它应该返回值
<form name="formulario" action="accion.php" method="post">
<input type="radio" name="opcion" value="1">Opcion 1
<input type="radio" name="opcion" value="2">Opcion 2
<input type="button" name="Enviar" value='eviar' onclick="enviar();">
</form>
<script>
function enviar(){
var di = document.getElementsByName('opcion');
for(i=0; i <di.length; i++){
if(di[i].checked==true){
valorSeleccionado = di[i].value;
alert(valorSeleccionado);
}
if(di[i].checked==false){
alert('you didn´t choose a option');
}
}
}
</script>
答案 0 :(得分:7)
请改为尝试:
function enviar() {
var di = document.getElementsByName('opcion');
var valid = false;
for (i = 0; i < di.length; i++) {
if (di[i].checked == true && !valid) {
valorSeleccionado = di[i].value;
valid = true;
alert(valorSeleccionado);
}
}
if (!valid) {
alert('you didn´t choose a option');
}
}
<强> jsFiddle example 强>
它只是通过单选按钮运行并检查是否已选中。如果是这样,它会设置一个标志并提醒该值,如果没有,则会提醒错误。
答案 1 :(得分:0)
为了知道选择了无线电,你应该检查“opcion”元素的值。我认为已检查的属性不适用于无线电,仅适用于复选框。
答案 2 :(得分:0)
你应该把你的JS函数放在html之前。 另外,您的验证不是很精确..
以下是您更正后的代码:
<script type="text>
function enviar(){
var valorSeleccionado = '';
var di = document.getElementsByName('opcion');
for(i=0; i <di.length; i++){
if(di[i].checked==true) {
valorSeleccionado = di[i].value;
}
if(valorSeleccionado) {
alert(valorSeleccionado);
} else {
alert("you didn't choose an option");
}
}
}
</script>
<form>
<input type="radio" name="opcion" value="1" />Opcion 1
<input type="radio" name="opcion" value="2" />Opcion 2
<input type="button" value="eviar" onclick="enviar();" />
</form>