Avatar billede oasen Nybegynder
07. november 2002 - 17:34 Der er 17 kommentarer og
1 løsning

Udløs en ja/nej-boks ved submit

Når brugeren submit'er en formular, ønsker jeg at udløse en boks, hvori der står indholdet af nogle af tekstfelterne, som han/hun har udfyldt. Herefter kan brugeren trykke OK eller CANCEL afhængig af, om vedkommende vil bekræfte de indtastede oplysninger.

Hvordan kan man lave det?
Avatar billede grunken Nybegynder
07. november 2002 - 17:55 #1
noget ligende nedenstående :)

<script language="javascript">
function okay(){
  if(confirm("er du sikker på at du vil tilmelde med nedenstående oplysninger\n\n " + (document.f.name.value) + "\n" + (document.f.email.value)+ "\n")){
    document.f.submit();
}
}
</script>

<form name="f" action=osv.>
<input type="text" name="navn">
<input type="text" name="mail">
<input type="botton" value="submit" name="knap" onclick="okay();">
</form>

-grunken
Avatar billede grunken Nybegynder
07. november 2002 - 18:00 #2
tænk at man kan indtaste så mange fejl på så kort tid *GG, neden stående virker *G*

<script language="javascript">
function okay(){
  if(confirm("er du sikker på at du vil tilmelde med nedenstående oplysninger\n\n " + (document.f.navn.value) + "\n" + (document.f.mail.value)+ "\n")){
    document.f.submit();
}
}
</script>

<form name="f" action=osv.>
<input type="text" name="navn">
<input type="text" name="mail">
<input type="button" value="submit" name="knap" onclick="okay();">
</form>

-grunken
Avatar billede oasen Nybegynder
07. november 2002 - 19:52 #3
Så simpelt?

Men hvad sker der hvis brugeren har deaktiveret understøttelse af JavaScript?
Vil boksen så bare udeblive, eller vil han/hun slet ikke kunne sende formularen?
Avatar billede grunken Nybegynder
07. november 2002 - 21:14 #4
Den vil IKKE blive sendt, eftersom browseren vil deaktivere ALT der har med JS at gøre.... men jeg har omskrevet den lidt, så den vil submitte under alle omstændigheder, pånær hvis der bliver trykket "nej/cancel" i en browser der fint understøtter javascript :)

her :

<script language="javascript">
<!--
function okay(){
  if(confirm("er du sikker på at du vil tilmelde med nedenstående oplysninger\n\n" + (document.f.navn.value) + "\n" + (document.f.mail.value)+ "\n")){
    document.f.submit();
}else{
return false;
}
}
// -->
</script>

<form name="f" onsubmit="return okay();" method="post" action="fil.html">
<input type="text" name="navn">
<input type="text" name="mail">
<input type="submit" value="submit" name="knap">
</form>

-grunken
Avatar billede oasen Nybegynder
07. november 2002 - 23:00 #5
Det virker glimrende, men jeg stødte ind i et mindre problem. Select-boksen "koen" returnerer værdien "1" eller "2".
Men hvis værdien er 1 skal ordet "mand" udskrives og hvis den er "2" skal ordet "kvinde" udskrives. Kan du klare den som det sidste?

<script language="javascript" type="text/javascript">
<!--
function confirmdata(){
  if(confirm("Følgende oplysninger kan ikke ændres senere! Er de korrekte?\n\nBrugernavn: " + (document.form.brugernavn.value) + "\nKøn: " + (document.form.koen.value) + "\nFødselsdato: " + (document.form.dag.value) + "/" + (document.form.maaned.value) + "-" + (document.form.aarstal.value) +"\n")){
    document.form.submit();
}else{
return false;
}
}
// -->
</script>
Avatar billede oasen Nybegynder
07. november 2002 - 23:39 #6
Øhh... og så skulle den sådan set også kun komme, hvis alle felterne er udfyldte.
Gider du?
Avatar billede grunken Nybegynder
07. november 2002 - 23:44 #7
Ja det gider jeg godt :)
Avatar billede grunken Nybegynder
08. november 2002 - 04:57 #8
havde helt glemt dig, og gik i gang med mit eget projekt :)

nedenstående burde opfylde dine ønsker :)

<script language="javascript" type="text/javascript">
<!--
function confirmdata(){

    var brugernavn = document.form.brugernavn.value;
    var koen      = document.form.koen.value;
    var dag        = document.form.dag.value;
    var maaned    = document.form.maaned.value;
    var aarstal    = document.form.aarstal.value;

    if ((brugernavn.length>0) && (koen.length>0) && (dag.length>0) && (maaned.length>0) && (aarstal.length>0)) {
          if(koen == 1) {
            koen = 'Mand';
          }
          if(koen == 2) {
            koen = 'Kvinde';
          }
          if(confirm("Følgende oplysninger kan ikke ændres senere! Er de korrekte?\n\nBrugernavn: " + (brugernavn) + "\nKøn: " + (koen) + "\nFødselsdato: " + (dag) + "/" + (maaned) + "-" + (aarstal) +"\n")){
            document.form.submit();
          }else{
            return false;
          }
    }else{
          return false;
    }
}
// -->
</script>

-grunken
Avatar billede oasen Nybegynder
08. november 2002 - 08:33 #9
Mange tak - jeg prøver det lige lidt senere ;)
Avatar billede oasen Nybegynder
10. november 2002 - 00:05 #10
Virker fint, men jeg mente at formularen skulle submittes under alle omstændigheder, men selve boksen skulle kun fremkomme, hvis felterne er udfyldt. Er det svært at ændre?
Avatar billede oasen Nybegynder
10. november 2002 - 03:31 #11
Jeg har nu redesignet dit script lidt, og det virker sådan set præcis som det skal, men der er en eller anden (uskyldig) fejl, når der trykkes "OK" i boksen!?


<script language="javascript" type="text/javascript">
<!--
function confirmdata(){

var brugernavn = document.form.brugernavn.value;
var password1 = document.form.password1.value;
var password2 = document.form.password2.value;
var email = document.form.email.value;
var koen = document.form.koen.value;
var dag = document.form.dag.value;
var maaned = document.form.maaned.value;
var aarstal = document.form.aarstal.value;
var bopael = document.form.bopael.value;
var beskrivelse = document.form.beskrivelse.value;

if ((brugernavn.length>0) && (koen!='0') && (dag!='0') && (maaned!='0') && (aarstal!='0') && (password1.length>0) && (password1==password2) && (bopael!='0') && (email.length>=6) && (beskrivelse.length>=50)) {
    if(koen == 1) {
        koen = 'Mand';
    }
    if(koen == 2) {
        koen = 'Kvinde';
    }
    if(confirm("Følgende oplysninger kan ikke ændres senere! Er de korrekte?\n\nBrugernavn: " + (brugernavn) + "\nKøn: " + (koen) + "\nFødselsdato: " + (dag) + "/" + (maaned) + "-" + (aarstal) +"\n")){
        document.form.submit();
    }else{
        return false;
    }
}else{
    return true;
}
}
// -->
</script>
Avatar billede grunken Nybegynder
10. november 2002 - 18:35 #12
giv mig hele den sides kode, så skal jeg nok rette det til !
Avatar billede oasen Nybegynder
10. november 2002 - 20:15 #13
Jeg har droslet det lidt ned:


<form method='post' action='newuser.asp?action=validate' name='form' onSubmit='return confirmdata();'>

<input class='userfields' type='text' value='' maxlength='20' name='brugernavn'>

<input class='userfields' type='password' value='' maxlength='12' name='password1'>

<input class='userfields' type='password' value='' maxlength='12' name='password2'>

<input class='userfields' type='text' value='' maxlength='40' name='email'>

<select class='userfields' name='bopael'></select>

<select name='dag'></select>&nbsp;&nbsp;<select name='maaned'></select>&nbsp;&nbsp;-&nbsp;&nbsp;<select name='aarstal'></select>

<select class='userfields' name='koen'></select>

<textarea class='usertext' name='beskrivelse' rows='3' cols='40'></textarea>
   
<input type='submit' name='submit' value='Opret profil'>

</form>
Avatar billede grunken Nybegynder
10. november 2002 - 23:04 #14
Hvofor skal det submittes under alle omstændigheder ?, er det ikke lidt spild at du både valdiderer tomme felter og fyldte felter 2 gange ??
Avatar billede grunken Nybegynder
10. november 2002 - 23:07 #15
er det ikke lettere at valdidere det hele i javasript, det andet er da kun til irratation :)
Avatar billede grunken Nybegynder
11. november 2002 - 02:49 #16
og nedenstående virker fint !

<!--
function confirmdata(){

var brugernavn = document.form.brugernavn.value;
var password1 = document.form.password1.value;
var password2 = document.form.password2.value;
var email = document.form.email.value;
var koen = document.form.koen.value;
var dag = document.form.dag.value;
var maaned = document.form.maaned.value;
var aarstal = document.form.aarstal.value;
var bopael = document.form.bopael.value;
var beskrivelse = document.form.beskrivelse.value;

if ((brugernavn.length>0) && (koen !=0) && (dag !=0) && (maaned !=0) && (aarstal !=0) && (password1.length>0) && (password1==password2) && (bopael !=0) && (email.length >5) && (beskrivelse.length >49)) {
    if(koen == 1) {
        koen = 'Mand';
    }
    if(koen == 2) {
        koen = 'Kvinde';
    }
    if(confirm("Følgende oplysninger kan ikke ændres senere! Er de korrekte?\n\nBrugernavn: " + (brugernavn) + "\nKøn: " + (koen) + "\nFødselsdato: " + (dag) + "/" + (maaned) + "-" + (aarstal) +"\n")){
        document.form.submit();
    }else{
        return false;
    }
}else{
    return true;
}
}
// -->
</script>
Avatar billede oasen Nybegynder
11. november 2002 - 12:02 #17
Nej, for hvis brugeren har slået javascript fra, skal vedkommende jo stadig have lov at oprette en profil, men samtidig skal jeg være sikker på felterne er udfyldt. Derfor valideres det serverside.
Ovenstående er heller ej en decideret validering. Det fungerer bare som en påmindelse til brugeren om, at brugeren skal være sikker på, at visse felter er korrekt udfyldt. Eksempelvis kommer mange til at angive deres køn som det modsatte...
Og det er faktisk meget brugervenligt - det tror jeg også du vil sige, hvis du prøvede det hele i praksis.

Ja, ovenstående virker fint, men lige idet man trykker "OK", blinker der en fejlmeddelelse i statuslinien, inden formularen submittes. Det var såmænd bare det, der undrede mig lidt!?
Avatar billede oasen Nybegynder
11. november 2002 - 16:16 #18
Nå, men jeg siger i hvertfald tusind tak for hjælpen!
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