2013-02-08 142 views
3

我已经在这里梳理了大量页面,并且仍然无法让我的显式验证器正常工作。基本上,当点击提交按钮时,我希望脚本验证一个收音机是否被选中,如果有人被选中则什么也不做。如果没有选中,我希望它发布警报消息。使用Javascript验证单选按钮

大概我的HTML看起来像:

<form id="myForm" onsubmit = "check()"> 
<input type = "radio" name = "c" id = "1" value = "1" /> 
<input type = "radio" name = "c" id = "2" value = "2" /> 
<input type = "radio" name = "c" id = "3" value = "3" /> 

<input type = "submit" value = "Submit" /> 

我的JS网页的样子:

function check() { 
    var r = document.getElementsByName("c") 
    var c = 0 

    for(var i=0; i < r.length; i++){ 
     if(c[i].checked) { 
      c = i; } 
    } 

    alert("please select radio"); 
} 
+0

http://www.chennaisunday.com/jsradio.html – 2015-02-03 05:50:43

回答

1

c[i].check 

应该

c[i].checked 

而你实际上并没有对结果做任何事情,你只是总是警觉。

+0

我改变了“检查”。我没有对结果做任何事情,即使没有检查任何东西,我甚至无法提醒它。 – 2013-02-08 20:14:06

+0

您是否检查过控制台以查看是否有错误?调试? – 2013-02-08 20:21:02

+0

我明白了,谢谢大家的帮助! – 2013-02-08 20:39:34

4

试试这个

function check() { 
var r = document.getElementsByName("c") 
var c = -1 

for(var i=0; i < r.length; i++){ 
    if(r[i].checked) { 
     c = i; 
    } 
} 
if (c == -1) alert("please select radio"); 
} 
+0

刚刚尝试过,仍然没有警觉。该页面基本上只是刷新,就像脚本不起作用。 – 2013-02-08 20:16:10

+3

@KelvinNguyen如果你不想将它提交给服务器,你需要返回false。 – 2013-02-08 20:25:30

+0

非常感谢你!问题解决了! – 2013-02-08 20:39:08

0
<html> 
<head> 
<script language="javascript"> 
function check() { 

chosen = "" 
len = document.myform.chk.length 

for (i = 0; i <len; i++) { 
if (document.myform.chk[i].checked) { 
chosen = document.myform.chk[i].value 
} 
} 

if (chosen == "") { 
alert("No Option selected"); 
return false; 
} 
else { 
alert("option selected"); 
return true; 
} 
} 
</script> 
</head> 
<body> 
<form name="myform" onsubmit = "return check();"> 
<input type = "radio" name = "chk" id = "1" value = "1" > 
<input type = "radio" name = "chk" id = "2" value = "2" > 
<input type = "radio" name = "chk" id = "3" value = "3" > 

<input type="submit" value="submit"> 

</form> 
</body> 
</html> 

检查此验证望其也可以帮助你。还要检查它jsfiddle

0
   function ShowMsg() {  

      if (fnSpeciality() == false) 
       { 
       document.getElementById("myform").focus(); 
       return false; 
      } 

       function fnSpeciality() 
       { 
      return fnRblfnSpeciality(); 
       } 
       function fnSpeciality() { 
        return fnRblfnSpeciality(); 
          } 


    function fnRblfnSpeciality() { 

     var list = document.getElementById('myform'); //Client ID of the radiolist 
     var inputs = list.getElementsByTagName("input"); 
     var isItemChecked = false; 
     for (var i = 0; i < inputs.length; i++) { 
      var listItem = inputs[i]; 

      if (listItem.checked) { 
       //alert(listItem.value); 
       isItemChecked = true; 
       break; 
      } 
     } 
    if (isItemChecked == false) { 
      if (isItemChecked =="") { 
       alert('Please select a speciality.'); 
       return false; 
      } 
      // else return true; 
     } 
     return true; 
    } 
-1

信用卡式 借记卡 现金

   </td> 
      </tr> 

现在用单选按钮列表..pls份额,如果有Java脚本验证此无线电按钮

+0

请编辑你的答案 – Webruster 2015-10-07 09:51:54