Avatar billede julle.p Nybegynder
12. februar 2007 - 20:57 Der er 16 kommentarer og
1 løsning

Validering af checkbox

Hej alle.
Jeg er ved at lave en hjemmeside hvor jeg har brug for en checkbox, hvor der skal sættes et flueben før man kan komme videre.

Når man ikke har sat et flueben, men alligevel trykker skal der komme en alert på skærmen.
Når man har sat et flueben og trykker skal der åbnes en "skriv mail" fra Outlook Express.

Jeg har selv en ide:


<script type="text/javascript">

function validering()
{
error = 0;
if(!(document.forms 0.checkboxnavn.checked) && (error==0))
{
alert('Du skal aktivt sætte et hak i checkboxen!');
document.forms 0.checkboxnavn.focus();
error = 1;
}

if(error == 0)
document.forms 0.submit();
}
</script>


<form action="" method="post" onsubmit="validering();return false;">
<input type="checkbox" name="checkboxnavn"> Ja, jeg accepterer at jeg skal sætte et hak her<br />
<input type="submit" value="Klik her for at validere">
</form>

(kilde: html.dk).

MEN, dette er jo bare en almindelig knap. Hvordan ændres den så jeg får en "skriv mail"??
Desuden vil jeg rigtige gerne gemmen resultaterne i en fil (standard: _private/form_results.csv), men når jeg ændre dette i koden, virken den ikke længere.......

Nogen der vil hjælpe...

Mvh Alex.
Avatar billede horizon Nybegynder
13. februar 2007 - 00:22 #1
Denne funktion deaktiverer simpelthen knappen så de ikke har mulighed for at gå videre med mindre de har sat et flueben.

giv din form et navn (erstat "formnavn" med dit eget),
giv din checkbox et navn (erstat "checkboksnavn" med dit eget),
giv din knap et navn(erstat "knapnavn" med dit eget).
* * *

function Udfyldt(){
                    if (document.formnavn.checkboksnavn.checked==false)
                        document.formnavn.knapnavn.disabled=true

                       
                    else
                        document.formnavn.knapnavn.disabled=false
                }
                if (document.all || document.getElementById)
                setInterval("Udfyldt()",100)
            </script>

* * *

efter hvad jeg så kan forstå så skal man derefter automatisk åbne sit mailprogram så man kan skrive en mail?

Hvis det er tilfældet så prøv i din forms action at skrive en mailto:mail@minmail.dk så åbner den gerne ens foretrukne mailprogram og har automatisk sat minmail@minmail.dk i "til" feltet
Avatar billede julle.p Nybegynder
13. februar 2007 - 01:00 #2
Tak for dit svar. Skal lige forstå det rigtigt :-)

Du vil kun sætte dette script ind og ikke noget i body-delen??

"efter hvad jeg så kan forstå så skal man derefter automatisk åbne sit mailprogram så man kan skrive en mail?"
Ja lige præcis.
Avatar billede horizon Nybegynder
13. februar 2007 - 01:18 #3
Jeg plejer at smide det ind lige før <form> og så skal du ikke rette noget i resten af dit script.

Bare sørg for at form, checkboks og knap har et navn og det er angivet i scriptet.

Bonusinfo:
Hvis du samtidigt vil sikre at brugeren har skrevet i et textfield så tilføj denne linje inde i if() [OR document.formnavn.textfieldnavn.value=='']. Den kan du så tilføje gentagne gange.

NB:
Husk dog at der er folk der har slået Javascript fra i deres browsere så lad være med at sætte knappen til disabled="disabled". Så lav hellere et nyt valideringsscript i et andet kodesprog bagefter.
Avatar billede horizon Nybegynder
13. februar 2007 - 01:20 #4
Så dit script kommer til at se sådanher ud:

* * *
<script type="text/javascript">
function Udfyldt(){
if (document.formnavn.checkboksnavn.checked==false)
  document.formnavn.knapnavn.disabled=true
else
  document.formnavn.knapnavn.disabled=false
}

if (document.all || document.getElementById)
setInterval("Udfyldt()",100)
</script>

<form action="mailto:minmail@mail.dk" method="post">
<input type="checkbox" name="checkboxnavn"> Ja, jeg accepterer at jeg skal sætte et hak her<br />
<input type="submit" name="knapnavn" value="Klik her for at validere">
</form>

* * *
Avatar billede horizon Nybegynder
13. februar 2007 - 01:21 #5
Hov!

<form name="formnavn" action="mailto:minmail@mail.dk" method="post">
Avatar billede horizon Nybegynder
13. februar 2007 - 01:21 #6
og Argh!

if (document.formnavn.checkboxnavn.checked==false)
Avatar billede julle.p Nybegynder
13. februar 2007 - 01:25 #7
Tusind tak. Virkelig fedt. Vil det også virke hvis jeg vil gemmen resultaterne i en fil (standard: _private/form_results.csv)?

Forstår du hvad jeg mener?
Avatar billede julle.p Nybegynder
13. februar 2007 - 01:39 #8
Øhm. I din kommentar skrevet 13/02-2007 01:21:44. Er det en rettelse?

Koden ser nu sådan ud:

<script type="text/javascript">
function Udfyldt(){
if (document.formnavn.checkboksnavn.checked==false)
  document.formnavn.knapnavn.disabled=true
else
  document.formnavn.knapnavn.disabled=false
}

if (document.all || document.getElementById)
setInterval("Udfyldt()",100)
</script>

<form name="formnavn" action="mailto:minmail@mail.dk" method="post">
<input type="checkbox" name="checkboxnavn"> Ja, jeg accepterer at jeg skal sætte et hak her<br />
<input type="submit" name="knapnavn" value="Klik her for at validere">
</form>


Umiddelbart kan jeg ikke få det til at virke?? Den åbner en Internet Explore meddelse som sender en mail, men man kan ikke ændre indholdet i den??
Avatar billede julle.p Nybegynder
13. februar 2007 - 01:40 #9
Og selvom der ikke er sat et flueben i checkboxen gør den det samme?
Avatar billede horizon Nybegynder
13. februar 2007 - 01:49 #10
Jeg ved ikke lige hvordan man så retter den til at den åbner ens mailprogram. Du kan evt. lave en mailformular i evt. php som så kan sende det afsted. Eller du kan få din form til at åbne et popup eller en ny side med et link de selv skal aktivere. Det er lige umiddelbart de eneste løsninger jeg kan se på det.

siden du linker til skal så indeholde en <a href="mailto:minmail@minmail.dk">Send en mail</a>

og ja. 01:21:44 er en rettelse. havde skrevet ks istedet for x.
Avatar billede julle.p Nybegynder
13. februar 2007 - 02:00 #11
Mht rettelsen: Ahh, det hjalp. Nu kan du ikke længere klikke uden at du har sat et flueben. Tak for det.

Det med poup lyder godt. Hvis man sætter et flueben kan man klikke hvorefter et popurvindue kommer frem indeholdende mailen. Er det noget du kan?
Avatar billede horizon Nybegynder
13. februar 2007 - 02:08 #12
<form name="formnavn" action="Navn-på-popupsiden.html" target="_blank" method="post">

og Navn-på-popupsiden.html skal så indeholde "<a href="mailto:minmail@minmail.dk">Send en mail</a>"

Så kan du selv rette med navne og farver og former og alt muligt
Avatar billede julle.p Nybegynder
13. februar 2007 - 02:15 #13
Super!

Popper den så selv op?
Avatar billede julle.p Nybegynder
13. februar 2007 - 02:19 #14
Det kan jeg se den gør :-)

Er der en måde hvorpå jeg kan få den til at centrere popup-vinduet og selv bestemme størelsen?
Avatar billede horizon Nybegynder
13. februar 2007 - 02:40 #15
ouch... den var slem... Om du kan gøre det fra en form ved jeg ikke. Det vil jeg næsten tro. Prøv dette (tyvstjållet fra html.dk)

indsæt i body

* * *

<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

function popup(url,name,win_height,win_width) {
    pos_horizon = ((screen.width/2)-(win_width/2));
    pos_vertical = ((screen.height/2)-(win_height/2));
    window.open(url,name,"width="+win_width+",height="+win_height+",top="+pos_vertical+",left="+pos_horizon);
    }

// Slut -->
</script>

* * *

erstat din <form> med denne:
* * *
<form name="formnavn" action="#" onsubmit="popup('Navn-på-vindue.asp','vindue','200','100')>
* * *
for at rette i størrelse er første tal efter 'vindue' højden på vinduet, næste er bredden. Jeg har ingen idé om det virker i en form, men prøv.
Avatar billede julle.p Nybegynder
13. februar 2007 - 10:47 #16
Vildt fedt! Det virker.

Tusind tak....!!
Avatar billede horizon Nybegynder
13. februar 2007 - 12:44 #17
'amen det var så lidt da :D
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