Avatar billede lund_dk Praktikant
01. juni 2007 - 14:03 Der er 10 kommentarer og
1 løsning

fejl med validering af radio

Nedenstående kode, bruger jeg til at validere mine radio butons der har navnet "betaling"

Der er i alt 4 radio buttons.

Vælger man 1,2 så brokker den sig ikke(som den skal)

Men vælger jeg 3 eller 4, får går scriptet i acion, og fortæller jeg skal markere en betalingsmetode..


hvordan kan det være..?

<script type="text/javascript">
<!--

function validate_form ( )
{
    valid = true;

if ( ( document.form4.betaling[0].checked == false )
    && ( document.form4.betaling[1].checked == false ) )
    {
        alert ( "Vælg venligst en betalingsmetode" );
        valid = false;
    }

    return valid;
}

//-->
</script>
Avatar billede michael_stim Ekspert
01. juni 2007 - 14:10 #1
Fordi du siger:
Hvis option 1 OG option 2 IKKE er checket, skal den komme med en alert.
Avatar billede lund_dk Praktikant
01. juni 2007 - 15:15 #2
kan du hjælpe mig med en kode så, der bare skal tjekke om skidtet er makeret eller ikke
Avatar billede michael_stim Ekspert
01. juni 2007 - 15:43 #3
Jo hvis jeg ved hvad der skal laves.
Hvis den altid skal väre checked, kan det skrives direkte i option knappen.

Du har fire options. Men hvilke vilkår skal der väre.

function validate_form ( )
{
    valid = true;

if ( ( document.form4.betaling[0].checked == false )
    && ( document.form4.betaling[1].checked == false )
( document.form4.betaling[2].checked == false )
    && ( document.form4.betaling[3].checked == false ) )
    {
        alert ( "Vælg venligst en betalingsmetode" );
        valid = false;
    }

    return valid;
}
Avatar billede michael_stim Ekspert
01. juni 2007 - 15:44 #4
Og så mangler der lige et && efter nr 2 vilkår.
Avatar billede roenving Novice
01. juni 2007 - 16:16 #5
Hvad med at iterere igennem knapperne:

function validate_form(f){
  var radios = f.betaling, chkd = false;
  for(i=0,im=radios.length;im>i;i++){
    chkd = chkd || radios[i].checked;
  }
  if(!chkd){
    alert ( "Vælg venligst en betalingsmetode" );
    radios[0].focus();
    return false;
  }
  return true;
}

-- med denne metode skal kaldet se sådan ud:

<form ... onsubmit="return validate_form(this);">
Avatar billede michael_stim Ekspert
01. juni 2007 - 16:23 #6
Men er ikke sikker på det er det lund_dk vil. Mit var bare et eksempel på at én skal väre checket (som din roenving). Derfor blev det bare noget klip og klister ;o)
Avatar billede roenving Novice
01. juni 2007 - 16:38 #7
Tjah, men jeg vil godt bruge lidt kræfter på at promovere god kodestil, så derfor var jeg ikke i tvivl om, at jeg lige skulle skrive tingen igennem !-)
Avatar billede lund_dk Praktikant
04. juni 2007 - 08:58 #8
Har lige forsøgt mig med

<script type="text/javascript">
<!--

function validate_form(f){
  var radios = f.betaling, chkd = false;
  for(i=0,im=radios.length;im>i;i++){
    chkd = chkd || radios[i].checked;
  }
  if(!chkd){
    alert ( "Vælg venligst en betalingsmetode" );
    radios[0].focus();
    return false;
  }
  return true;
}

//-->
</script>


men den virker ikke, formen submittes alligevel
Avatar billede lund_dk Praktikant
04. juni 2007 - 08:59 #9
Hey nææh, den virker da..

så smid et svar :D
Avatar billede roenving Novice
04. juni 2007 - 14:47 #10
Velbekomme '-)
Avatar billede roenving Novice
06. juni 2007 - 00:03 #11
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester