Avatar billede macho Praktikant
14. maj 2004 - 14:09 Der er 11 kommentarer og
1 løsning

Defaulttekst skal ikke afsendes i formular

Jeg har en lidt større formular, som bl.a. består af et kommentar-felt, hvori der er en default-value. Jeg bruger både onclick, onfocus og onblur i feltet. Pt. ser det således ud:

<textarea rows=7 cols=48 name="comments"
          onclick="if(this.value==this.defaultValue)this.value='';"
          onfocus="if(this.value==this.defaultValue)this.value='';"
          onblur="if(this.value=='')this.value=this.defaultValue;"
      size="20">Skriv eventuelle kommentarer i dette felt...</textarea>

Det jeg gerne vil have skal ske, er, at hvis der IKKE ændres fra default-valuen, så skal der feltet sendes tomt afsted. Kan dette gøres?

mvh
Avatar billede grunken Nybegynder
14. maj 2004 - 14:44 #1
samme drejning :o)

<form ... onsubmit="if(this.comments.defaultValue==this.comments.value)this.comments.value=='';">
Avatar billede macho Praktikant
14. maj 2004 - 15:17 #2
Jeg har i forvejen denn onsubmit i form-linjen:
<form name="xxxx" method="post" action="xxx.php" onSubmit="return CheckForm();">

hvorledes tilføjer jeg så endnu en onsubmit?
Avatar billede olebole Juniormester
14. maj 2004 - 16:39 #3
<ole>

Nu kan vi jo ikke se din validerings-funktion, men hvis du f.eks. refererer til formen med 'f' (inde i funktionen), kan du skrive:

function CheckForm() {
  // Din nuværende kode her
  if (f.comments.defaultValue==f.comments.value) f.comments.value="";
}

/mvh
</bole>
Avatar billede macho Praktikant
14. maj 2004 - 17:21 #4
Jeg har prøvet din metode, men desværre bliver default-value stadig medsendt formularen, når den ikke bliver ændret.

Hvis det kan hjælpe noget, så er her (en del) af min validerings-funktion (incl. det du foreslår):

function CheckForm () {



    //Initialiser variabler

    var errorMsg = "";



    //Tjek comments for default-vaerdi

   
    if (document.tilmelding.comments.defaultValue == document.tilmelding.comments.value) document.tilmelding.comments.value == "";


    }



    //Tjek fornavn

    if (document.tilmelding.fornavn.value == ""){

        errorMsg += "\n\tFornavn \t\t- Indtast dit fornavn\n";


    }



    //Tjek efternavn

    if (document.tilmelding.efternavn.value == ""){

        errorMsg += "\n\tEfternavn \t- Indtast dit efternavn\n";



    }



    //Tjek adresse

    if (document.tilmelding.adresse.value == ""){

        errorMsg += "\n\tAdresse \t\t- Indtast din adresse\n";

    }






    if (errorMsg != ""){

        msg = "______________________________________________________________\n\n";

        msg += "Din tilmelding er ikke blevet sendt, da ikke alle krævede felter er udfyldt.\n";

        msg += "Venligst udfyld alle krævede felter og send tilmeldingen igen.\n";

        msg += "______________________________________________________________\n\n";

        msg += "Du mangler at udfylde følgende felt(er): -\n";



        errorMsg += alert(msg + errorMsg + "\n\n");

        return false;

    }



    return true;

}

// -->


men det virker desværre stadig ikke?
Avatar billede grunken Nybegynder
14. maj 2004 - 19:46 #5
ovenstående burde også give en fejl - da du har en  "}" for meget :o)

    //Tjek comments for default-vaerdi
    if (document.tilmelding.comments.defaultValue == document.tilmelding.comments.value) document.tilmelding.comments.value == "";

    }

skal se sådan ud:

    //Tjek comments for default-vaerdi
    if (document.tilmelding.comments.defaultValue == document.tilmelding.comments.value) document.tilmelding.comments.value == "";
Avatar billede grunken Nybegynder
14. maj 2004 - 19:47 #6
og så kunne script med rette som olebole er inde på strippes til noget meget mindre :o)
Avatar billede macho Praktikant
14. maj 2004 - 20:20 #7
Okay, jeg har nu fjernet det ekstra "}", og får nu heller ingen fejl ved afsendelse, men default-teksten fra "comments"-feltet bliver desværre stadig sendt med når formularen sendes.

Any ideas?
Avatar billede roenving Novice
15. maj 2004 - 21:36 #8
Hvorfor er det egentlig et problem ?-)

Du kan da bare si den værdi fra, når du indsætter i din database eller genererer hvad du ellers har brug for !-)
Avatar billede macho Praktikant
15. maj 2004 - 22:44 #9
Det kan vel betegnes som en slags luksus-problem :-)

Felterne fra formularen, bliver sendt direkte ind i en MySql database og det er kun, hvis man skriver andet end default-value i tekstboksen, at jeg ønsker at se denne tekst i databasen!

Men igen, så er det skam et luksus-problem
Avatar billede macho Praktikant
15. maj 2004 - 22:45 #10
Eller måske misforstår jeg din kommentar, roenving? Hvad mener du med, at jeg kan si værdien fra?
Avatar billede roenving Novice
15. maj 2004 - 23:00 #11
Hvis værdien i boksen er default-værdien, skal du bare lade være med at indsætte den !-)

-- jeg har nemlig en mistanke om, at du kan støde ind i udførelse af en onblur-event, hvis du gør noget med formen, det kan du jo ikke server-side !o]
Avatar billede macho Praktikant
15. juni 2004 - 23:42 #12
Lukker - fandt aldrig en brugbar løsning!
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