2013-02-08 3 views
3

J'ai parcouru une tonne de pages ici, et je suis toujours incapable de faire fonctionner mon validateur explicite. Fondamentalement, lorsque le bouton Soumettre est cliqué, je veux que le script vérifie qu'une radio est vérifiée, si l'on est coché pour ne rien faire. Si ce n'est pas coché, je veux qu'il affiche un message d'alerte.Validation des boutons radio avec Javascript

à peu près mon html ressemble:

<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" /> 

ma page JS ressemble à:

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 –

Répondre

1

cette

c[i].check 

devrait être

c[i].checked 

et vous ne faites rien avec le résultat, vous êtes toujours en alerte.

+0

J'ai changé le "vérifié". Je ne fais rien avec le résultat, je n'arrive même pas à l'alerter même si rien n'est vérifié. –

+0

Avez-vous vérifié la console pour voir s'il y a des erreurs? débogué? etc .., –

+0

Je l'ai eu, merci à tous pour l'aide! –

4

essayez celui-ci

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

Juste essayé, toujours pas d'alerte. La page est simplement rafraîchie, comme le script ne fonctionne pas. –

+3

@KelvinNguyen Vous devez retourner false si vous ne voulez pas qu'il soit envoyé au serveur. –

+0

merci beaucoup! problème résolu! –

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> 

Vérifiez cette validation espère son peut aussi vous aider. Jetez également dans 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

CreditCard carte de débit comptant

   </td> 
      </tr> 

Am en utilisant la part de la liste bouton radio si avoir la validation de script java pour cette radio bouton

+0

Veuillez éditer votre réponse – Webruster