Avatar billede elskermad.dk Nybegynder
13. december 2003 - 23:53 Der er 30 kommentarer og
2 løsninger

document.form.submit() fejl i form validering

jeg får en fejl hver gang min validering af min form ender med at den er godkendt og derfor skal sendes....

min onSubmit er således:

onSubmit='if(document.opret_ferie.opret_ferie_tekst.value!=\"\"){if(isskudarplus(document.opret_ferie.opret_ferie_fra_dato.value,document.opret_ferie.opret_ferie_fra_maned.value,document.opret_ferie.opret_ferie_fra_ar.value)==true&&isskudarplus(document.opret_ferie.opret_ferie_til_dato.value,document.opret_ferie.opret_ferie_til_maned.value,document.opret_ferie.opret_ferie_til_ar.value)==true){document.opret_ferie.submit()}else{document.opret_ferie.opret_ferie_tekst1.value=document.opret_ferie.opret_ferie_tekst.value;showdiv(\"opret_ferie\");return false}}else{alert(\"Du skal skrive en tekst!\");showdiv(\"opret_ferie\");document.opret_ferie.opret_ferie_tekst1.focus();return false}'

Alle feltnavne er rigtig skrevet, og en kort beskrivelse af functionerne:
showdiv() = viser/fjerner en div (hehe)
isskudarplus() = returnere false hvis datoen ikk er gyldig, og hvis den er retunere den true

håber der er nogen der kan se fejlen?
Avatar billede elskermad.dk Nybegynder
13. december 2003 - 23:54 #1
.. skal siges at alt andet end submitten fungere!
Avatar billede htm Nybegynder
13. december 2003 - 23:58 #2
Hvilken fejlmeddelse får du?
Og du burde overvej at smide det i en funktion for sig, hvor det er mere overskueligt sat op.
Avatar billede roenving Novice
13. december 2003 - 23:59 #3
Er det en submit på formen opret_ferie ?-)

For så kan du jo nemmere debugge, fordi du kan skrive:

onSubmit='if(this.opret_ferie_tekst.value!=\"\"){if(isskudarplus(this.opret_ferie_fra_dato.value,this.opret_ferie_fra_maned.value,this.opret_ferie_fra_ar.value)==true&&isskudarplus(this.opret_ferie_til_dato.value,this.opret_ferie_til_maned.value,this.opret_ferie_til_ar.value)==true){this.submit()}else{this.opret_ferie_tekst1.value=this.opret_ferie_tekst.value;showdiv(\"opret_ferie\");return false}}else{alert(\"Du skal skrive en tekst!\");showdiv(\"opret_ferie\");this.opret_ferie_tekst1.focus();return false}'
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:02 #4
sådan set ikke nogen... kun den gule kasse nede i venstre hjørne som kommer hver gang der er dårlig kodning! linien den henviser til er samme linie som overstående!

Siden bliver submittet men jeg ved at nogen browsere vil komme frem med en meddelse hver gang der er en fejl så er ved at gennemgå alt jsvalidering...

har problemmer med den submit flere steder som fx denne function:

function tjek_login() {
    x = document.login;
   
    if (x.brugernavn.value=='') {
        alert('Du skal indtaste et brugernavn!');
        document.login.brugernavn.focus();
        return false;
    }
    else if (x.password.value=='') {
        alert('Du skal indtaste et password!');
        document.login.password.focus();
        return false;
    }
    else {
        document.login.submit();
    }
}

man logger ind, men den kommer med den gule kasse inden!
Avatar billede roenving Novice
14. december 2003 - 00:03 #5
Hvad siger fejlmeddelelsen, når du dobbeltklikker på advarselsikonet ?-)
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:03 #6
ja der er en submit knap... den ser således ud:

<input type='submit' name='submit' value='[ tilføj ferie ]' class='form_knap' style='width:40%' onClick='document.opret_ferie.opret_ferie_tekst.value=document.opret_ferie.opret_ferie_tekst1.value;document.opret_ferie.opret_ferie_tekst1.value=\"\";showdiv(\"opret_ferie\")'>

jeg bliver nødt til alt det med skift mellem bokse da det er en side som ikke opdateres og derfor sender det ud til en iframe istedet!
Avatar billede roenving Novice
14. december 2003 - 00:04 #7
Hedder formen det samme som din div ?-)
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:06 #8
Linie: 396 (<form name='opret_ferie' method='post' action='set/ferie.php' target='skjult_ferie' onSubmit=' osv)
Tegn: 385
Fejl: Objektet understøtter ikke denne egenskab eller metode
Kode: 0
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:06 #9
ja kan de ikke det? *dooh*
Avatar billede htm Nybegynder
14. december 2003 - 00:07 #10
Har lige lavet din form lidt bedre, og mere overskuelig. kaldes med onsubmit="valider(this.form);"

function valider(f)
{
    if(f.opret_ferie_tekst.value!="")
    {
        if(isskudarplus(f.opret_ferie_fra_dato.value,f.opret_ferie_fra_maned.value,f.opret_ferie_fra_ar.value)==true &&
            isskudarplus(f.opret_ferie_til_dato.value,f.opret_ferie_til_maned.value,f.opret_ferie_til_ar.value)==true)
            {
                f.submit();
            }
            else
            {
                f.opret_ferie_tekst1.value=f.opret_ferie_tekst.value;
                showdiv('opret_ferie');
                return false;
            }
        }
        else
        {
            alert("Du skal skrive en tekst!");
            showdiv('opret_ferie');
            f.opret_ferie_tekst1.focus();
            return false;
        }
}
Avatar billede roenving Novice
14. december 2003 - 00:12 #11
>>htm

Det er da godt nok noget vrøvl, du har fået skrevet i kaldet:

onsubmit="valider(this);"

skal det selvfølgelig være -- og så tror jeg da også fejlen vil forsvinde uden problemer med navne !-)
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:13 #12
"med navne"?
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:15 #13
vil I få mere ud af det hvis I får alt koden? har prøvet at lave den function nu.. men nu vil den ikke engang validere for skudår og om boksen er udfyldt :/
Avatar billede htm Nybegynder
14. december 2003 - 00:17 #14
dooh ja, det er jo selve form objektet :-)

Bruger du mit kald eller roenvings kald?
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:23 #15
ændret kaldet men burde det ikke virke på samme måde? og er x ikke lige så godt som f? (for at gøre det ens med de andre functioner jeg har!)




function tjek_ferie() {
    x = document.ferie;
   
    if(x.opret_ferie_tekst.value!='') {
        if(isskudarplus(x.opret_ferie_fra_dato.value,x.opret_ferie_fra_maned.value,x.opret_ferie_fra_ar.value)==true &&
        isskudarplus(x.opret_ferie_til_dato.value,x.opret_ferie_til_maned.value,x.opret_ferie_til_ar.value)==true) {
            x.submit();
        }
        else {
            x.opret_ferie_tekst1.value=x.opret_ferie_tekst.value;
            showdiv('opret_ferie');
            return false;
        }
    }
    else {
        alert('Du skal skrive en tekst!');
        showdiv('opret_ferie');
        x.opret_ferie_tekst1.focus();
        return false;
    }
}





<div id='opret_ferie' style='z-index:978;position:absolute;left:150px;top:20px;display:none'>
    <form name='ferie' method='post' action='set/ferie.php?kal_maned=12&kal_ar=2003&kal_dato=14' target='skjult_ferie' onSubmit='tjek_ferie();return false'>
    <table width='500' border='0' align='center' cellpadding='0' cellspacing='20' style='border: 1px groove #7A7A7A; background:#E9F3F8'>
        <tr>
            <td>
                <div style='text-align:left;font-family: Verdana;font-size:16px'><b>Opret fridag(e)</b></div>
                Bruger<br>
                <select name='opret_ferie_bruger' class='form_select'>
                    <option value='MAMSTER' style='background:#CCCCCC' SELECTED>MAMSTER</option>
                    <option value='admin'>admin</option>
                    <option value='Jørgen'>Jørgen</option>           
                </select><br><br>
                Grund<br>
                <select name='opret_ferie_type' class='form_select'>
                    <option value='ferie'>Ferie</option>
                    <option value='praktik'>Praktik</option>
                    <option value='orlov'>Orlov</option>
                    <option value='sygdom'>Sygdom</option>
                    <option value='andet'>Andet</option>
                </select><br><br>
                Fra dato<br>
                <select name='opret_ferie_fra_dato' class='form_select'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='11'>11</option><option value='12'>12</option><option value='13'>13</option><option value='14' SELECTED>14</option><option value='15'>15</option><option value='16'>16</option><option value='17'>17</option><option value='18'>18</option><option value='19'>19</option><option value='20'>20</option><option value='21'>21</option><option value='22'>22</option><option value='23'>23</option><option value='24'>24</option><option value='25'>25</option><option value='26'>26</option><option value='27'>27</option><option value='28'>28</option><option value='29'>29</option><option value='30'>30</option><option value='31'>31</option></select> /
                <select name='opret_ferie_fra_maned' class='form_select'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='11'>11</option><option value='12' SELECTED>12</option></select>
                <select name='opret_ferie_fra_ar' class='form_select'><option value='2003' SELECTED>2003</option><option value='2004'>2004</option><option value='2005'>2005</option><option value='2006'>2006</option><option value='2007'>2007</option><option value='2008'>2008</option><option value='2009'>2009</option><option value='2010'>2010</option><option value='2011'>2011</option><option value='2012'>2012</option><option value='2013'>2013</option><option value='2014'>2014</option><option value='2015'>2015</option><option value='2016'>2016</option><option value='2017'>2017</option><option value='2018'>2018</option><option value='2019'>2019</option><option value='2020'>2020</option><option value='2021'>2021</option><option value='2022'>2022</option><option value='2023'>2023</option><option value='2024'>2024</option><option value='2025'>2025</option><option value='2026'>2026</option><option value='2027'>2027</option><option value='2028'>2028</option><option value='2029'>2029</option><option value='2030'>2030</option><option value='2031'>2031</option><option value='2032'>2032</option><option value='2033'>2033</option><option value='2034'>2034</option><option value='2035'>2035</option></select>
                <br><br>
                Til dato<br>
                <select name='opret_ferie_til_dato' class='form_select'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='11'>11</option><option value='12'>12</option><option value='13'>13</option><option value='14' SELECTED>14</option><option value='15'>15</option><option value='16'>16</option><option value='17'>17</option><option value='18'>18</option><option value='19'>19</option><option value='20'>20</option><option value='21'>21</option><option value='22'>22</option><option value='23'>23</option><option value='24'>24</option><option value='25'>25</option><option value='26'>26</option><option value='27'>27</option><option value='28'>28</option><option value='29'>29</option><option value='30'>30</option><option value='31'>31</option></select> /
                <select name='opret_ferie_til_maned' class='form_select'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='11'>11</option><option value='12' SELECTED>12</option></select>
                <select name='opret_ferie_til_ar' class='form_select'><option value='2003' SELECTED>2003</option><option value='2004'>2004</option><option value='2005'>2005</option><option value='2006'>2006</option><option value='2007'>2007</option><option value='2008'>2008</option><option value='2009'>2009</option><option value='2010'>2010</option><option value='2011'>2011</option><option value='2012'>2012</option><option value='2013'>2013</option><option value='2014'>2014</option><option value='2015'>2015</option><option value='2016'>2016</option><option value='2017'>2017</option><option value='2018'>2018</option><option value='2019'>2019</option><option value='2020'>2020</option><option value='2021'>2021</option><option value='2022'>2022</option><option value='2023'>2023</option><option value='2024'>2024</option><option value='2025'>2025</option><option value='2026'>2026</option><option value='2027'>2027</option><option value='2028'>2028</option><option value='2029'>2029</option><option value='2030'>2030</option><option value='2031'>2031</option><option value='2032'>2032</option><option value='2033'>2033</option><option value='2034'>2034</option><option value='2035'>2035</option></select>   
                <br>
                <b>begge dage inklusiv!</b><br><br>
                Opgave<br>
                <textarea name='opret_ferie_tekst1' rows='10' class='form_boks' style='width:90%' cols='6'></textarea><br>
                <div style='text-align:center'>
                    <input type='submit' name='submit' value='[ tilføj ferie ]' class='form_knap' style='width:40%' onClick='document.ferie.opret_ferie_tekst.value=document.ferie.opret_ferie_tekst1.value;document.ferie.opret_ferie_tekst1.value="";showdiv("opret_ferie")'>
                    <input type='reset' name='reset' value='[ luk vindue ]' class='form_knap' style='width:40%' onClick='showdiv("opret_ferie");return false'>
                    <br>
                </div>
            </td>
        </tr>
    </table>
    <textarea name='opret_ferie_tekst' rows='0' class='form_boks' style='width:0px;height:0px' cols='0'></textarea>                               
    </form>
</div>
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:27 #16
i kan se hvad jeg mener hvis i klikker herind http://www.myserver.lir.dk/webcal.dk/demo.php og trykker på "prøv demoen"

(den tager lidt tid at loade da jeg kør lokalt)

når det hele er hentet (en kalender) kan i trykke på en knap under månedskalenderen med nogle zZz på... det er den der burde blive valideret, men som der åbenbart er noget galt med!
Avatar billede roenving Novice
14. december 2003 - 00:27 #17
Det er meget bedre at have referencen til formen med !-)

<form name='ferie' method='post' action='set/ferie.php?kal_maned=12&kal_ar=2003&kal_dato=14' target='skjult_ferie' onSubmit='tjek_ferie(this);return false'>

-- og

tjek_ferie(x){
//det gør ikke noget du bruger x, men f er mere beskrivende, derfor bruger jeg altid det !-)
Avatar billede htm Nybegynder
14. december 2003 - 00:28 #18
Overfør form objektet som jeg gjorde i min funktion med f. Lige meget om den hedder x eller f eller...
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:32 #19
nu virker det med blank-form og skudår igen efter jeg bruger (this) men den kommer stadig med en fejl når jeg submitter... er jeg pjattet, eller er det noget i mener os burde rettes?
Avatar billede roenving Novice
14. december 2003 - 00:34 #20
Selvfølgelig skal det rettes, så du må debugge 'langsomt' = sætte alerts ind, for at finde ud af, hvornår fejlen kommer ...
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:36 #21
det er der os med hvis det er en tom boks, eller hvis det er skudårs-forkert-dato, så kommer der en alert op... - og de virker fint!

vil man ku se noed udfra hvis man satte en alert når den submittede?
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:40 #22
hvis jeg laver functionen således:

function tjek_ferie(f) {   
    if(f.opret_ferie_tekst.value!='') {
        if(isskudarplus(f.opret_ferie_fra_dato.value,f.opret_ferie_fra_maned.value,f.opret_ferie_fra_ar.value)==true &&
        isskudarplus(f.opret_ferie_til_dato.value,f.opret_ferie_til_maned.value,f.opret_ferie_til_ar.value)==true) {
            alert('tilføjer');
            f.submit();
        }
        else {
            f.opret_ferie_tekst1.value=f.opret_ferie_tekst.value;
            showdiv('opret_ferie');
            return false;
        }
    }
    else {
        alert('Du skal skrive en tekst!');
        showdiv('opret_ferie');
        f.opret_ferie_tekst1.focus();
        return false;
    }
}

kommer popup-boksen for at den tilføjer fint frem, og først når man trykker ok kommer den gule kasse...? det må være submit(); den ikke er glad for?
Avatar billede htm Nybegynder
14. december 2003 - 00:43 #23
Prøv og fjern den helt. Mener det skulle være nok at have return true på. herefter fjerner du så return false på din onsubmit event.
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:51 #24
nu siger den ingen fejl, men den submitter hele tiden os selvom der fx ikke er nogen tekst i feltet og at den har sagt fejl for der mangler tekst
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 00:57 #25
weeee har fået det til at virke... hvis man sætter functionen til at give true eller false så kan man dette:

onSubmit='if(tjek_ferie(this)!=true){return false}' også virker det!

I er bar for fede... læg et svar begge 2 :D
Avatar billede htm Nybegynder
14. december 2003 - 01:01 #26
svar :-)
Avatar billede htm Nybegynder
14. december 2003 - 01:01 #27
ups vi prøver igen
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 01:04 #28
hehe venter li på roenving så vil jeg lege julemand :)
Avatar billede roenving Novice
14. december 2003 - 01:04 #29
onSubmit='if(tjek_ferie(this)!=true){return false}' er præcis det samme som at skrive:

onsubmit='return tjek_ferie(this)' ...
Avatar billede roenving Novice
14. december 2003 - 01:04 #30
Jamen, velbekomme da '-)
Avatar billede elskermad.dk Nybegynder
14. december 2003 - 01:10 #31
okay det var da noed nemmere tak for det også og velbekomme selv :D
Avatar billede roenving Novice
14. december 2003 - 01:12 #32
-- og tak for points ;~}
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