2013-02-08 87 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