Avatar billede macriis Nybegynder
08. februar 2005 - 16:18 Der er 7 kommentarer og
1 løsning

To scripts på body onload hvordan?

Hej

Jeg ønsker at kombinere 2 scripts på form-taggen. Det drejer sig om disse:

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal indeholde en korrekt e-mailadresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' er påkrævet.\n'; }
  } if (errors) alert('Følgende fejl opstod:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function checkForm(f) {
  if (f.kundeGruppeMain.selectedIndex<1) {
    alert("Vælg en kundegruppe");
    f.kundeGruppeMain.focus();
    return false;
  }
  return true;
}


onSubmit på form-taggen ser således ud pt.:

onSubmit="MM_validateForm('kundenavn','','R','telefonnr','','R','email','','NisEmail','postnr','','R','by','','R');return document.MM_returnValue;return CheckForm(this.form)"



Men når det ser sådan ud, er det kun MM_validateForm-funktionen, der virker.
Nogen der kan hjælpe med at kobinere disse?
Avatar billede softspot Forsker
08. februar 2005 - 18:47 #1
Ja, det er fordi du udfører en

      return document.MM_returnValue

inden

      return CheckForm(this.form)

kan nå at blive udført. Du skal bestemme dig for hvilken værdi du vil returnere, den MM_returnValue som MM_validateForm lægger i document eller den som CheckForm returnerer...
Avatar billede olebole Juniormester
08. februar 2005 - 19:33 #2
<ole>

Nej, det sker formodentligt, fordi du kun returnerer den ene. Prøv:
 
onSubmit="MM_validateForm('kundenavn','','R','telefonnr','','R','email','','NisEmail','postnr','','R','by','','R');return (CheckForm(this.form);document.MM_returnValue;)"

/mvh
</bole>
Avatar billede macriis Nybegynder
08. februar 2005 - 20:53 #3
olebole> Jeg ville rigtig gerne at dit forslag virker, men det gør det desværre ikke.

Kan jeg prøve noget andet?
Avatar billede olebole Juniormester
08. februar 2005 - 21:11 #4
Doooohhhh ... my bad!  :o|

onsubmit="MM_validateForm('kundenavn','','R','telefonnr','','R','email','','NisEmail','postnr','','R','by','','R');return (CheckForm(this.form)&&document.MM_returnValue)"
Avatar billede olebole Juniormester
08. februar 2005 - 21:13 #5
... og i virkeligheden kan du vel nøjes med:

onsubmit="return (MM_validateForm('kundenavn','','R','telefonnr','','R','email','','NisEmail','postnr','','R','by','','R')&&CheckForm(this.form))"
Avatar billede macriis Nybegynder
08. februar 2005 - 21:24 #6
Når jeg bruger begge dine forslag så får jeg først alerten fra MM_validateForm-funktionen men efterfølgende submittes formen alligevel.
Avatar billede roenving Novice
09. februar 2005 - 04:54 #7
-- jeg har heller aldrig fattet hvad den Dreamweaver-funktion absolut skal bruge en document.MM_returnValue til, når den jo direkte kan findes ved at returne den fra funktionen ...

-- et gæt er at den javascripter, som har kodet MM_validateForm intet ved om javascript, så han har fundet på noget, for det er bestemt ikke den eneste uhensigtsmæssighed ,-(

-- så du er nødt til at bruge oles forslag fra 08/02-2005 21:11:01 !-)
Avatar billede macriis Nybegynder
09. februar 2005 - 09:47 #8
Men det virker desværre ikke. Form får lov til at submitte efter jeg har klikket Ok på alertboksen.

Kan jeg i stedet bede én af jer lave et samlet script hvor både alm. tekstfelter og en selectmenu kan valideres for om der er indtastet/valgt noget i dem?

Det drejer sig om 4 tekstbokse ud af ca. 20, der skal indeholde noget. 2 af dem må kun indeholde tal.
Selectmenuen er dynamisk. Funktionen checkForm har olebole lavet tidl. og den virker perfekt til selectmenuen.
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