Avatar billede madssch Nybegynder
20. februar 2003 - 12:21 Der er 13 kommentarer og
1 løsning

Formulartjek med radiobuttons

Jeg har nedenstående script hvor jeg forsøger at tjekke på, om radioknappen med værdien "email" er valgt - og herefter tjekke på et andet felt. Min function ser sådan ud, men virker ikke:

<script>

function checkFormdata() {

    if(this.document.pdfOptions.pdfvalg.value=='email') {

        if(this.document.pdfOptions.email.value=='') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }

        if(this.document.pdfOptions.email.value=='Din emailadresse...') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }
    }
}

</script>

Mit problem er, at det virker simpelthen ikke!

Hvad gør jeg galt? Det er som om, at min function slet ikke bliver brugt. Jeg har dette i min form-tag:

onSubmit="return checkFormdata()"

Kan nogen hjælpe?
Avatar billede olebole Juniormester
20. februar 2003 - 13:22 #1
<ole>

Du kan ikke kalde din radio det samme som dit text-felt. Her har jeg kaldt din radio-knap for 'bla' (find selv et passende navn):

function checkFormdata(f) {
    if (f.bla.checked) {
        if(f.email.value=='' || f.email.value=='Din emailadresse...') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }
    }
}

onSubmit="return checkFormdata(this)"

/mvh
</bole>
Avatar billede madssch Nybegynder
20. februar 2003 - 13:32 #2
Stadig ingen reaktion.

Virker som om den ikke kommer ind i funktionen.

Min nye kode:

<script>

function checkFormdata(pdfOptions) {
    if (pdfOptions.pdfvalg.checked) {
        if(pdfOptions.emailadr.value=='' || pdfOptions.emailadr.value=='Din emailadresse...') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }
    }
}

</script>

onSubmit="return checkFormdata(this)"

(Hvor "pdfOptions" er navnet på min form)
Avatar billede olebole Juniormester
20. februar 2003 - 13:46 #3
Det tror da pokker ... skriv nu, det jeg skrev til dig. Du skal ikke bruge formnavnet til noget
Avatar billede madssch Nybegynder
20. februar 2003 - 14:05 #4
Okay...

Det har jeg så gjort nu, men stadig uden at function'en "reagerer".

I dit eksempel ser jeg et problem i, at jeg har 3 radiobuttons - alle med navnet pdfvalg. Derfor gik jeg i mit første eksempel ind og spurgte på værdien af knappen. Kan man ikke det istedet?

Men altså stadig ingen held...  :(
Avatar billede olebole Juniormester
20. februar 2003 - 14:08 #5
Læg en URL til siden. Det er ikke til at vide, hvor du laver fejl
Avatar billede madssch Nybegynder
20. februar 2003 - 14:14 #6
http://demo.nmc-erhverv.dk/default.asp

Klik på .: Print to PDF :.
Avatar billede olebole Juniormester
20. februar 2003 - 15:02 #7
Det var jo noget helt andet end, hvad vi har talt om  :)

function checkFormdata(f) {
    if (f.bla.checked) {
        if(f.email.value=='' || f.email.value=='Din emailadresse...') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }
    }
    f.submit();
}



<FORM NAME="PrintToPDF" METHOD="POST" ACTION="inc_print_pdf.asp">
<INPUT TYPE="HIDDEN" NAME="PDFURL" VALUE="http://demo.nmc-erhverv.dk/default_pdf.asp">
<INPUT TYPE="HIDDEN" NAME="PDFQS" VALUE="?pdfaction=pdf">
<INPUT TYPE="HIDDEN" NAME="PDFPOST" VALUE="">
<a href="#" onclick="checkFormdata(document.PrintToPDF);">.: Print to PDF :.</a>
</FORM>
Avatar billede olebole Juniormester
20. februar 2003 - 15:05 #8
Ahaaa .... vent lige et øjeblik  :)
Avatar billede madssch Nybegynder
20. februar 2003 - 15:06 #9
Hehe... Nu går det helt galt!  :D  (Forkert formular)  ;-)

Her:

<form method="post" action="<%=strURL%>" name="pdfOptions" onSubmit="return checkFormdata(this)">

<input type="hidden" name="pdfnavn" value="<%=Request.QueryString("pdfnavn")%>">

    <tr>
        <td>
<input type="radio" name="pdfvalg" value="download" checked onClick="java script:document.all.emailFelt.style.visibility='hidden';">&nbsp;Download (Kun Internet Explorer)
        </td>
    </tr>

    <tr>
        <td>
<input type="radio" name="pdfvalg" value="vindue" onClick="java script:document.all.emailFelt.style.visibility='hidden';">&nbsp;Åbn i nyt vindue
        </td>
    </tr>

    <tr>
        <td>
<input type="radio" name="pdfvalg" value="email" onClick="java script:document.all.emailFelt.style.visibility='visible';">&nbsp;Email
        </td>
    </tr>

    <tr>
        <td>

<div id="emailFelt">
    <input type="text" name="emailadr" class="formfelt" size="25" value="Din emailadresse..." onFocus="this.form.emailadr.value=''">
</div>

        </td>
    </tr>

    <tr>
        <td height=5></td>
    </tr>
    <tr>
        <td align=center><a href="java script:document.pdfOptions.submit();">Udfør valg -></a></td>
    </tr>

</form>
Avatar billede olebole Juniormester
20. februar 2003 - 15:14 #10
Ja, det fandt jeg ud af. Du har jo ikke én - men tre radios. Derudover fyres onsubmit-event'en ikke af, når en form submittes via JavaScript. Slet derfor din onsubmit-handler.

<script type="text/JavaScript">
function checkFormdata(f) {
    if (f.bla[2].checked) {
        if(f.email.value=='' || f.email.value=='Din emailadresse...') {
            alert('FEJL:\n\nDer skal indtastes en gyldig emailadresse');
            return false;
        }
    }
    f.submit();
}
</script>

...og dit link:

<a href="#" onclick="checkFormdata(document.pdfOptions);">Udfør valg -></a>
Avatar billede madssch Nybegynder
20. februar 2003 - 15:17 #11
Okay! Ser spændende ud!  :D

Og "bla" var hvad..?
Avatar billede olebole Juniormester
20. februar 2003 - 15:19 #12
Det er navnet på dine radios (copy/paste fra før).

PS: CMS'er, hvor man skal skrive kode, er totalt outdated ... det er der da ingen professionelle løsninger, der bruger idag.
Avatar billede madssch Nybegynder
20. februar 2003 - 15:22 #13
Man SKAL ikke indtaste kode selv - men man har muligheden.

Så var den der sgu!

Du har absolut fortjent dine points!!!  :D

Tusind, tusind tak for hjælpen!  ;-)
Avatar billede olebole Juniormester
20. februar 2003 - 15:37 #14
Selvtak.
Jeg ved godt, man ikke _skal_ skrive kode, men hvis et CMS skal virke bare en anelse professionelt, skal den slags da laves WYSIWYG. Det andet var noget, man lavede for flere år siden. Det er der ingen, der bruger mere.
/mvh
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