Avatar billede michael_stim Ekspert
16. februar 2007 - 11:11 Der er 9 kommentarer og
1 løsning

Validering af radiobutton virker ikke.

Hvorfor submitter denne funktion når der ikke er valgt noget i radioknapperne? Den kommer med en alert, men submitter derefter. Det er kun radioknapperne.

function validering(f){
  if(f.leverandoer.value=='0'){
    alert('Du skal vælge en leverandør!');
    f.leverandoer.focus();
    return false;
  }
  if(f.varegruppe_nr.value==''){
    alert('Du skal vælge en varegruppe!');
    f.varegruppe_nr.focus();
    return false;
  } 
  if(f.varechef.value=='0'){
    alert('Du skal vælge en varechef/ansvarlig!');
    f.varechef.focus();
    return false;
  } 
  if(!f.type[0].checked && !f.type[1].checked && !f.type[2].checked){
    alert('Husk at vælge kategori på leverandørtype!');
    f.type.focus();
    return false;
  }
  return true;
}

--------------

<form method="post" action="opret_levstam2.php" name="levform" onsubmit="return validering(this);">
Avatar billede froenie Nybegynder
16. februar 2007 - 11:19 #1
Måske fordi du først kalder din validering i onsubmit...

Hvis du nu kalder valideringen på 'onclick' eventet på din submit knap, og så submitter fra javascript functionen istedet hvis alt er opfyldt.
Avatar billede kalp Novice
16. februar 2007 - 11:26 #2
Du kan også submitte formen via. java script.. altså før sidste }
lave en document.DinForm.Submit();
og så gøre så din knap blot kalder funktionen.
Avatar billede michael_stim Ekspert
16. februar 2007 - 11:34 #3
Men isset i php vil jo stadig reagere på klik.
Avatar billede kalp Novice
16. februar 2007 - 11:45 #4
jeg vidste ikke det var i henhold til php:)
så kan ikke rigtig hjælpe der.. du kan evt. prøve følgende fremgangsmåde (hvis ikke der kommer en med et bud på det du har lavet - ville jeg være bedre)

men ændre din knap til
<input type="button" name="send" value="Send!" onClick="return validering();">

og din funktion til


function validering(){
var f = document.dinForm;
  if(f.leverandoer.value=='0'){
    alert('Du skal vælge en leverandør!');
    f.leverandoer.focus();
    return false;
  }
  if(f.varegruppe_nr.value==''){
    alert('Du skal vælge en varegruppe!');
    f.varegruppe_nr.focus();
    return false;
  } 
  if(f.varechef.value=='0'){
    alert('Du skal vælge en varechef/ansvarlig!');
    f.varechef.focus();
    return false;
  } 
  if(!f.type[0].checked && !f.type[1].checked && !f.type[2].checked){
    alert('Husk at vælge kategori på leverandørtype!');
    f.type.focus();
    return false;
  }
  document.f.submit();
}

hvis ikke du må lave skrive

var f = document.dinForm;

så skal du f.eks skrive

if(document.dinForm.leverandoer.value=='0'){


men behøver nok ikke belære dig om noget.. tror du har styr på det:) om ikke andet så har du da fået et bud:)
Avatar billede michael_stim Ekspert
16. februar 2007 - 12:28 #5
Fandt ud af at det var focus() der lavede ballade ;o)
Bare læg et svar for besværligheden.
Avatar billede michael_stim Ekspert
16. februar 2007 - 12:29 #6
På radiochecket. Ellers fungerede min kode (hvis man nu kan sige sådan når det ikke fungerer...).
Avatar billede kalp Novice
16. februar 2007 - 12:43 #7
nej behøver ikke point:) kom bare med lidt input;)
Avatar billede michael_stim Ekspert
23. februar 2007 - 13:10 #8
Closing...
Avatar billede roenving Novice
25. februar 2007 - 16:45 #9
f.type[0].focus();
Avatar billede michael_stim Ekspert
25. februar 2007 - 16:59 #10
Klart roenving. Ellers bliver JS jo forvirret og filmen knækker. Merci.
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