2013-10-08 121 views
0

我需要一个警报来显示何时没有选中单选按钮。Javascript单选按钮警报的问题

HTML代码:

<tr> 
<td><input id="Radio1" name="delivery" value="M" type="radio">M</td> 
</tr> 
<tr> 
<td><input id="Radio2" name="delivery" value="P" type="radio">P</td> 
</tr> 
<tr> 
<td><input id="Radio3" name="delivery" value="S" type="radio">S</td> 
</tr> 

的Javascript:

 deliveryChecked = "" 
    for (i = 0; i < f.deliveryChecked; i++) { 
     if (f.deliveryChecked[i].checked) { 
      deliveryChecked = f.delivery[i].value 
      break 
     } 
    } 

      if (deliveryChecked == "") { 
      alert("You did not make a delivery selection!") 
     return false 
    } 
+0

什么是 “F”?你期望“f.deliveryChecked”是什么? – Pointy

+0

捕获下一个用户生成的事件(通常点击一个提交按钮),并检查是否没有选中单选按钮。关键是:将一个事件处理程序绑定到Submit(或Next/Continue/Go/Whatever)按钮 – gibberish

+0

哦 - 看起来你刚刚有一个错字 - “f.deliveryChecked”应该只是“f.delivery”。 – Pointy

回答

0

HTML:

<form onsubmit="return validate(this)"> 
    <input id="Radio1" name="delivery" value="M" type="radio" /> 
    <input id="Radio2" name="delivery" value="P" type="radio" /> 
    <input id="Radio3" name="delivery" value="S" type="radio" /> 
    <input type="submit" /> 
</form> 

JS:

function validate(frm){ 
    var atLeastOneChecked=false; 
    [].forEach.call(frm.delivery,function(input){ 
     atLeastOneChecked=atLeastOneChecked? 
      true 
       : 
      input.checked; 
    }); 
    if(!atLeastOneChecked){ 
     alert("You did not make a delivery selection!"); 
     return false; 
    } 
    return true; 
}