17. februar 2003 - 22:49Der er
17 kommentarer og 1 løsning
Submitter for hutigt til ny side
Jeg har en asp-side med en form. Felterne skal først valideres før end de indtastede værdier videresendes til næste side.
Er der fejl i indtastningen popper en alert-box op og forklarer nærmere. Derefter klikker man på OK for at lukke alert-boksen igen, men når man gør det submittes formularen og det er ikke meningen.
jeg kalder i form-taggen en javascript funktion kaldet valider(). Skriver jeg return foran den submittes siden ikke uanset om formularen er korrekt udfyld eller ej.
Så kort fortalt skal formen kun submittes når den er fuldstændig og korrekt udfyld og ikke før.
function valider(form) { if (felt_er_ok) { } else { alert ("felt er ikke ok."); form.felt.focus(); return false; } //til sidste kører du en return true; return true; // alle felter er ok }
Formen skal submittes, men først når alle input-felter er korrekt udfyldt. Jeg har nu i min form-tag tilføjet return så der nu står onSubmit="return validate();".
Dermed popper alert-boksen ved fejl stadig op som den skal, men selv når alle felter er korrekt udfyld submitter den IKKE formens indhold og der er jo heller ikke meningen.
Så er det i dine valideringskriterier, den er gal...
Synes godt om
Slettet bruger
18. februar 2003 - 13:47#12
Så ligger problemet i indholdet af funktionen validate()... Hvis du ikke kan se logikken i det pelkjaer og jeg har smidt bliver vi nok nød til at se noget kode før vi kan hjælpe dig!
... <form action="butik/betal.asp" method="post" name="tilmeldForm" onSubmit="return validate();"> ... ----------------------------------------------------------------------------- Funktionerne FieldValidation(), validateForm() og BIT_NOT_XXX er inkluderet i filen valider.js
Kode :
//fieldValidattion objektet understøtter følgende bits til at validere, //BIT_NOT_EMTPY = giver sig selv, validerer om feltet er tomt. //BIT_VALID_EMAIL=Valid email, dvs. korrekt syntax //BIT_ONE_SELECTED= Der er valgt mindst en mulighed i en selectionbox, checkbox, radio button //BIT_VALID_DATE= Valid dato efter formatet dd-mm-yyy //BIT_VALID_TLF= Valid tlfnr paa formatet 01234567 //BIT_VALID_POSTNR= Valid postnr. paa formatet 0123
var BIT_NOT_EMPTY = Number(1); var BIT_ONE_SELECTED=Number(2); var BIT_VALID_EMAIL=Number(4); var BIT_VALID_DATE=Number(8); var BIT_VALID_TLF=Number(16); var BIT_VALID_POSTNR=Number(32);
var FLD_TYPE_TEXT="text"; var FLD_TYPE_SELECT="select-one"; var FLD_TYPE_SELECT_MULTIPLE="select-multiple"; var FLD_TYPE_RADIO="radio"; var FLD_TYPE_CHECKBOX="checkbox"; var FLD_TYPE_PASSWORD="password";
var ERR_MSG_START="Der er mangler i formularen som skal rettes før end"+"\n"+"du kan fortsætte tilmeldingen til DHL-stafetten 2003."; var ERR_SEP="\n-----------------------------------------------------------------------\n"; var ERR_SEP2="------------------------------------------------------------------------\n"; var ERR_MSG_END="Ret venligst og klik på ''Fortsæt til betaling ->''";
function getErrorMessage(label,bits2) { var ret=""; bits=parseInt(bits2);
if(Number(bits & BIT_NOT_EMPTY)==BIT_NOT_EMPTY) { ret=ret+", skal indtastets"; } if(Number(bits & BIT_ONE_SELECTED)==BIT_ONE_SELECTED) { ret=ret+", skal vælges"; }
Øhm, der er kun svar fra mig selv, men ikke regin så indtil videre kan jeg ikke give point for svaret.
Synes godt om
Ny brugerNybegynder
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.