Avatar billede mrjowns Novice
01. juli 2004 - 12:45 Der er 20 kommentarer og
1 løsning

Check går videre selvom return false

Hej

Det drejer sig om denne side: http://www.desijowns.dk/index.asp?guestbook=1

Check'et virker på navn og e-mail men når man ikke har skrevet noget i 'tekst' kommer en alarm (som der skal), og når man så trykker OK (på alarmen) submitter formen alligevel! Håber der er nogen der kan hjælpe!

Min check: http://www.desijowns.dk/jscript/check.js
Avatar billede mm12010 Nybegynder
01. juli 2004 - 12:51 #1
du havde forkert struktur i dine if-sætninger der gjorde at hvis den nederste if var sand blev der submitted:

function Check(){
    if(document.guest.guestname.value == ""){
        alert ("Du skal huske at skrive dit navn!");
        document.guest.guestname.focus();
        return false;
        }
    if(!isValidEmail(document.guest.guestmail.value)){
        alert("E-mail adressen er ikke gyldig. Check at du har skevet rigtigt...");
        document.guest.guestmail.focus();
        return false;
        }
    if(document.guest.EditorBasic.value == ""){
        alert ("Du skal huske at skrive en tekst!");
        document.guest.EditorBasic.focus();
        return false;
        }
    return true;
    }
Avatar billede mrjowns Novice
01. juli 2004 - 12:56 #2
Hmmm, prøv at teste det! Det virker stadig ikke...
Avatar billede roenving Novice
01. juli 2004 - 13:00 #3
Du har da stadig

else {
    return true;
    }
}

-- det er else-delen, som skal fjernes !-)
Avatar billede mm12010 Nybegynder
01. juli 2004 - 13:01 #4
denne linie skal oz væk:
  document.guest.EditorBasic.focus();
Avatar billede roenving Novice
01. juli 2004 - 13:06 #5
-- ja, og i stedet sætte et name på iframen og så i stedet skrive:

document.editorFrame.focus();
Avatar billede mm12010 Nybegynder
01. juli 2004 - 13:06 #6
eller:
window.frames[0].location.reload();
Avatar billede mrjowns Novice
01. juli 2004 - 13:14 #7
Hmmm, nu ser min check.js sådan ud

function Check(){
    if(document.guest.guestname.value == ""){
        alert ("Du skal huske at skrive dit navn!");
        document.guest.guestname.focus();
        return false;
        }
    if(!isValidEmail(document.guest.guestmail.value)){
        alert("E-mail adressen er ikke gyldig. Check at du har skevet rigtigt...");
        document.guest.guestmail.focus();
        return false;
        }
    if(document.guest.EditorBasic.value == ""){
        alert ("Du skal huske at skrive en tekst!");
        document.fckeditor.focus();
        return false;
        }
    return true;
    }

men scriptet submitter alligevel, selvom der ikke står noget i feltet!
Avatar billede roenving Novice
01. juli 2004 - 13:20 #8
Har du prøvet mms forslag om ikke at have fokus-linjen med ?-)
Avatar billede mrjowns Novice
01. juli 2004 - 13:21 #9
Prøver ... 2 sek
Avatar billede mrjowns Novice
01. juli 2004 - 13:24 #10
Nu ser min check.js sådan ud:

function Check(){
    if(document.guest.guestname.value == ""){
        alert ("Du skal huske at skrive dit navn!");
        document.guest.guestname.focus();
        return false;
        }
    if(!isValidEmail(document.guest.guestmail.value)){
        alert("E-mail adressen er ikke gyldig. Check at du har skevet rigtigt...");
        document.guest.guestmail.focus();
        return false;
        }
    if(document.guest.EditorBasic.value == ""){
        alert ("Du skal huske at skrive en tekst!");
        return false;
        }
    return true;
    }

Men nu kan jeg slet ikke få lov at submitte - uanset om der står noget i tekst eller ej.... Prøv selv http://www.desijowns.dk/index.asp?guestbook=1
Avatar billede mrjowns Novice
01. juli 2004 - 13:26 #11
Funny! Skriver man noget i boksen og submitter får man alert-boksen. Trykker man anden gang går den igennem.....
Avatar billede roenving Novice
01. juli 2004 - 13:29 #12
Så må der være en manglende funktionalitet i fckeditoren, så den ikke får overført værdien, hrmm ...
Avatar billede roenving Novice
01. juli 2004 - 13:33 #13
-- og så lige en simpel forenkling:

<form name="guest" action="guestbook/insert.asp" method="post" onsubmit="return Check(this)">

function Check(f){
    if(f.guestname.value == ""){
        alert ("Du skal huske at skrive dit navn!");
        f.guestname.focus();
        return false;
        }
    if(!isValidEmail(f.guestmail.value)){
        alert("E-mail adressen er ikke gyldig. Check at du har skevet rigtigt...");
        f.guestmail.focus();
        return false;
        }
    if(f.EditorBasic.value == ""){
        alert ("Du skal huske at skrive en tekst!");
        document.fckeditor.focus();
        return false;
        }
    return true;
    }
Avatar billede roenving Novice
01. juli 2004 - 13:40 #14
Måske kan du få editoren til at reagere, hvis du eksplicit fjerner fokus:

<form name="guest" action="guestbook/insert.asp" method="post" onsubmit="this.focus();return Check(this)">
Avatar billede mrjowns Novice
01. juli 2004 - 13:44 #15
Hehe, det var vist det der skulle til! Tak for hjælpen roenving! Point?
Avatar billede roenving Novice
01. juli 2004 - 13:45 #16
Velbekomme '-)
Avatar billede mrjowns Novice
01. juli 2004 - 13:47 #17
Noup, der var jeg vist lige lovlig hurtig! Nu submitter den ikke hvis der ikke står noget i boksen. Til gengæld får man alert hvis der står noget i boksen og først anden gang man submitter går den igennem.... Det er mystisk!
Avatar billede roenving Novice
01. juli 2004 - 13:51 #18
Har du lige linket til fckeditorens scripts ?-)
Avatar billede mrjowns Novice
01. juli 2004 - 13:52 #19
Avatar billede mrjowns Novice
01. juli 2004 - 14:05 #20
Glem det!!! Det er noget skod! Tak for hjælpen, roenving! Du får pointene!
Avatar billede roenving Novice
01. juli 2004 - 14:28 #21
Gaab, han attacher en event og sætter noget onsubmit på formen, det kan jeg heller ikke gennemskue, sådan lige på en studs ...

oForm.attachEvent("onsubmit", setFieldValue) ;

-- men 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