04. august 2003 - 20:15
Der er
12 kommentarer og 1 løsning
Formen submittes selv om submit=false?
Jeg har dette script som jeg kører for at kontrollere info i formen. Problet er bare at formen bliver submittet selv om submit er lig false? Hvis jeg ikke udfylder noget i min form, så virker det som om script kun når et stykke inden formen submittets, dvs. den skriver kun et par af fejlmeddelelserne og når ikke resten, måske heller ikke ned til den endelige if()... Very strange... <script type="text/javascript"> function validate() { var submitOK="True"; // Ingen int! if (document.book.fName.value=="") { document.getElementById('labFName').innerHTML='Indtast dit fornavn!'; document.book.fName.select(); submitOK="False"; } else { document.getElementById('labFName').innerHTML=''; } // Ingen int! if (document.book.lName.value=="") { document.getElementById('labLName').innerHTML='Indtast dit efternavn!'; document.book.lName.select(); submitOK="False"; } else { document.getElementById('labLName').innerHTML=''; } // Mail-check // Ankomstdato-check if (document.book.time.value==0) { document.getElementById('labTime').innerHTML='Indtast ankomsttidspunkt!'; document.book.time.select(); submitOK="False"; } else { document.getElementById('labTime').innerHTML=''; } // Kun int! if (document.book.nights.value=="") { document.getElementById('labNights').innerHTML='Indtast antal overnatninger!'; document.book.nights.select(); submitOK="False"; } else { document.getElementById('labNights').innerHTML=''; } // Kun int! if (document.book.pers.value=="") { document.getElementById('labPers').innerHTML='Indtast antal personer!'; document.book.pers.select(); submitOK="False"; } else { document.getElementById('labPers').innerHTML=''; } // virker ikke! if (document.book.pet.value=="ja" && book.petType.value=="") { document.getElementById('labPetType').innerHTML='Indtast husdyrets art!'; document.book.petType.select(); submitOK="False"; } else { document.getElementById('labPetType').innerHTML=''; } if (submitOK=="False") { return false; } } </script> <?php include'menu.php'; ?> <div id="divMain"> <form name="book" method="post" action="conf.php" onSubmit="return validate()"> <table> <tr> <th align="right"> Fornavn: </th> <td> <input type="text" name="fName" size="30"/> </td> <td> <label id="labFName" for="labFName" style="color:red"> </td> </tr> <tr> <th align="right"> Efternavn: </th> <td> <input type="text" name="lName" size="30"/> </td> <td> <label id="labLName" for="labLName" style="color:red"> </td> </tr> ... Mere, mere, mere... <tr> <th align="right" valign="top"> Evt. bemærkninger: </th> <td> <textarea name="com" COLS="35" ROWS="3"></textarea> <td> </tr> </table> <input type="submit" value="Foretag booking"/> </form> </div>
Annonceindlæg fra Netic
04. august 2003 - 20:44
#1
prøv sådan! <script type="text/javascript"> function validate() { submitOK=true; // Ingen int! if (document.book.fName.value=="") { document.getElementById('labFName').innerHTML='Indtast dit fornavn!'; document.book.fName.select(); submitOK=false; } else { document.getElementById('labFName').innerHTML=''; } // Ingen int! if (document.book.lName.value=="") { document.getElementById('labLName').innerHTML='Indtast dit efternavn!'; document.book.lName.select(); submitOK=false; } else { document.getElementById('labLName').innerHTML=''; } // Mail-check // Ankomstdato-check if (document.book.time.value=="0") { document.getElementById('labTime').innerHTML='Indtast ankomsttidspunkt!'; document.book.time.select(); submitOK=false; alert(submitOK) } else { document.getElementById('labTime').innerHTML=''; } // Kun int! if (document.book.nights.value=="") { document.getElementById('labNights').innerHTML='Indtast antal overnatninger!'; document.book.nights.select(); submitOK=false; alert(submitOK) } else { document.getElementById('labNights').innerHTML=''; } // Kun int! if (document.book.pers.value=="") { document.getElementById('labPers').innerHTML='Indtast antal personer!'; document.book.pers.select(); submitOK=false; alert(submitOK) } else { document.getElementById('labPers').innerHTML=''; } // virker ikke! if (document.book.pet.value=="ja" && book.petType.value=="") { document.getElementById('labPetType').innerHTML='Indtast husdyrets art!'; document.book.petType.select(); submitOK=false; alert(submitOK) } else { document.getElementById('labPetType').innerHTML=''; } return submitOK } </script>
04. august 2003 - 20:54
#2
Samme resultat! Har lige prøvet at lave min sidste if() om til: if(submitOK=="False") { alert("Hej hop!"); return false; } Jeg får ingen alert??
04. august 2003 - 20:57
#3
kan du så ikke lige smide hele formen ?, så kan vi nok få det til at spille!
04. august 2003 - 21:07
#4
<html> <head> <script type="text/javascript"> function validate() { var submitOK="True"; // Ingen int! if (document.book.fName.value=="") { document.getElementById('labFName').innerHTML='Indtast dit fornavn!'; document.book.fName.select(); submitOK="False"; } else { document.getElementById('labFName').innerHTML=''; } // Ingen int! if (document.book.lName.value=="") { document.getElementById('labLName').innerHTML='Indtast dit efternavn!'; document.book.lName.select(); submitOK="False"; } else { document.getElementById('labLName').innerHTML=''; } // Mail-check // Ankomstdato-check if (document.book.time.value==0) { document.getElementById('labTime').innerHTML='Indtast ankomsttidspunkt!'; document.book.time.select(); submitOK="False"; } else { document.getElementById('labTime').innerHTML=''; } // Kun int! if (document.book.nights.value=="") { document.getElementById('labNights').innerHTML='Indtast antal overnatninger!'; document.book.nights.select(); submitOK="False"; } else { document.getElementById('labNights').innerHTML=''; } // Kun int! if (document.book.pers.value=="") { document.getElementById('labPers').innerHTML='Indtast antal personer!'; document.book.pers.select(); submitOK="False"; } else { document.getElementById('labPers').innerHTML=''; } // virker ikke! if (document.book.pet.value=="ja" && book.petType.value=="") { document.getElementById('labPetType').innerHTML='Indtast husdyrets art!'; document.book.petType.select(); submitOK="False"; } else { document.getElementById('labPetType').innerHTML=''; } if(submitOK=="False") { alert("Hej hop!"); return false; } } </script> <link rel="stylesheet" type="text/css" href="style.css"> <script language="JavaScript" type="text/javascript"> function lib_bwcheck(){ //Browsercheck (needed) this.ver=navigator.appVersion this.agent=navigator.userAgent this.dom=document.getElementById?1:0 this.opera5=this.agent.indexOf("Opera 5")>-1 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; this.ie4=(document.all && !this.dom && !this.opera5)?1:0; this.ie=this.ie4||this.ie5||this.ie6 this.mac=this.agent.indexOf("Mac")>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5) return this } var bw=new lib_bwcheck() /*** variables you can configure ***/ FoldNumber = 8 //How many toplinks do you have? var stayFolded = false; foldImg = 1 //Do you want images (if not set to 0 and remove the images from the body)? mainOffsetY = 0 //Vertical space adjustment between the main items, in pixels. //This is the default image. //Remember to change the actual images in the page as well, but remember to keep the name of the image. var unImg=new Image(); unImg.src='foldoutmenu_arrow.gif' var exImg=new Image(); //Making an image variable... exImg.src='foldoutmenu_arrow_open.gif' //...this is the source of the image that it changes to when the menu expands. // NOTE: if you change the position of divCont from absolute to relative, you can put the foldoutmenu in a table. // HOWEVER it will no longer work in netscape 4. If you wish to support netscape 4, you have to use absolute positioning. /*** There should be no need to change anything beyond this. ***/ // A unit of measure that will be added when setting the position of a layer. var px = bw.ns4||window.opera?"":"px"; if(navigator.userAgent.indexOf('Opera')>-1 && document.getElementById){ //Opera 5 resize fix. scrX= innerWidth; scrY= innerHeight; document.onmousemove= function(){ if(scrX<innerWidth-10 || scrY<innerHeight-10 || scrX>innerWidth+10 || scrY>innerHeight+10){ scrX = innerWidth; scrY = innerHeight; initFoldout(); } }; } //object constructor... function makeMenu(obj,nest){ nest= (!nest)?"":'document.'+nest+'.'; this.el= bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):document.getElementById(obj); this.css= bw.ns4?this.el:this.el.style; this.ref= bw.ns4?this.el.document:document; this.x= (bw.ns4||bw.opera5)?this.css.left:this.el.offsetLeft; this.y= (bw.ns4||bw.opera5)?this.css.top:this.el.offsetTop; this.h= (bw.ie||bw.ns6)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.opera5?this.css.pixelHeight:0; this.vis= b_vis; this.hideIt= b_hideIt; this.showIt= b_showIt; this.moveIt= b_moveIt; return this } //object methods... function b_showIt(){this.css.visibility='visible'} function b_hideIt(){this.css.visibility='hidden'} function b_vis(){if(this.css.visibility=='hidden' || this.css.visibility=='HIDDEN' || this.css.visibility=='hide') return true;} function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px} /************************************************************************************ This is the function that changes the sub menus to folded or unfolded state. ************************************************************************************/ function menu(num){ if(bw.bw){ if (!stayFolded){ for (var i=0; i<oSub.length; i++){ if (i!=num){ oSub[i].hideIt() if (foldImg)oTop[i].ref["imgA"+i].src = unImg.src } } for(var i=1; i<oTop.length; i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].h) } } if (oSub[num].vis()){ oSub[num].showIt() if (foldImg)oTop[num].ref["imgA"+num].src = exImg.src }else{ oSub[num].hideIt() if(foldImg)oTop[num].ref["imgA"+num].src = unImg.src } for(var i=1; i<oTop.length; i++){ if (!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].h+oSub[i-1].h+mainOffsetY) else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].h+mainOffsetY) } } } /********************************************************************* The init function... there should be no need to change anything here. *********************************************************************/ function initFoldout(){ //Fixing the browsercheck for opera... this can be removed if the browsercheck has been updated!! bw.opera5 = (navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?true:false if (bw.opera5) bw.ns6 = 0 oTop = new Array() oSub = new Array() //Making the objects and hiding the subs... for(var i=0; i<FoldNumber; i++){ oTop[i] = new makeMenu('divTop'+i,'divCont') oSub[i] = new makeMenu('divSub'+i,'divCont.document.divTop'+i) oSub[i].hideIt() } //Positioning the top objects... oTop[0].moveIt(0,0) for (var i=1; i<oTop.length; i++){ oTop[i].moveIt(0, oTop[i-1].y+oTop[i-1].h+mainOffsetY) } //Making the containing menu object and showing it... oCont = new makeMenu('divCont') oCont.showIt() } // If the browser is ok, the script is started onload... if(bw.bw) onload = initFoldout; </script> </head> <body> <div id="divMenu"> <div id="divCont"> <!-- These are the contents of the foldoutmenu. --> <div id="divTop0" class="clTop"> <a href="index.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA0" width=12 height=12 alt="" border="0">Forside </a> <br> <div id="divSub0" class="clSub"> </div> <br> </div> <div id="divTop1" class="clTop"> <a href="#" onclick="menu(1); return false" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA1" width=12 height=12 alt="" border="0">Billeder </a> <br> <div id="divSub1" class="clSub"> <a href='huset.php'>Huset </a> <br> <a href='fam.php'>Familieværelset </a> <br> <a href='twiin.php'>2 sengs værelset </a> <br> <a href='dobbelt.php'>Dobbeltværelset </a> <br> <a href='bad.php'>Bade/opholdsværelset </a> <br> <a href='havestue.php'>Havestuen (morgenmad) </a> <br> <a href='have.php'>Haven/hyggekrogen </a> <br> </div> <br> </div> <div id="divTop2" class="clTop"> <a href="priser.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA2" width=12 height=12 alt="" border="0">Priser </a> <br> <div id="divSub2" class="clSub"> </div> <br> </div> <div id="divTop3" class="clTop"> <a href="#" onclick="menu(3); return false" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA3" width=12 height=12 alt="" border="0">Transport/kort </a> <br> <div id="divSub3" class="clSub"> <a href='bil.php'>Bil </a> <br> <a href='offentligt.php'>Offentlig transport </a> <br> </div> <br> </div> <div id="divTop4" class="clTop"> <a href="book.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA4" width=12 height=12 alt="" border="0">Booking </a> <br> <div id="divSub4" class="clSub"> </div> <br> </div> <div id="divTop5" class="clTop"> <a href="kontakt.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA5" width=12 height=12 alt="" border="0">Kontakt </a> <br> <div id="divSub5" class="clSub"> </div> <br> </div> <div id="divTop6" class="clTop"> <a href="links.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA6" width=12 height=12 alt="" border="0">Links </a> <br> <div id="divSub6" class="clSub"> </div> <br> </div> <div id="divTop7" class="clTop"> <a href="ukIndex.php" onfocus="this.blur()"> <img src="foldoutmenu_arrow.gif" name="imgA7" width=12 height=12 alt="" border="0">In English <span style="position:absolute; left:105px; top:3px;"><img border="0" src="billeder/ukflag.gif"></span> </a> <br> <div id="divSub7" class="clSub"> </div> <br> </div> </div> </div> <div id="divHeader"> <h1>Royalty Bed & Breakfast</h1> </div> <div id="divAdr"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2"> <img src="billeder/rbb.gif" border="0"> </td> </tr> <tr> <td colspan="2">Tornestykket 9</td> </tr> <tr> <td colspan="2">2720 Vanløse</td> </tr> <tr> <td>Tlf.:</td><td>38797023</td> </tr> <tr> <td>Fax:</td><td>38797043</td> </tr> </table> </div> <div id="divPage"> <h1>Booking (1 af 3)</h1> </div> <div id="divMain"> <h2>Udfyld nedenstående formular for at foretage en booking på Royalty Bed & Breakfast.</h2> <form name="book" method="post" action="conf.php" onSubmit="return validate()"> <table> <tr> <th align="right"> Fornavn: </th> <td> <input type="text" name="fName" size="30"/> </td> <td> <label id="labFName" for="labFName" style="color:red"> </td> </tr> <tr> <th align="right"> Efternavn: </th> <td> <input type="text" name="lName" size="30"/> </td> <td> <label id="labLName" for="labLName" style="color:red"> </td> </tr> <tr> <th align="right"> E-Mail: </th> <td> <input type="text" name="mail" size="30"/> </td> <td> <label id="labMail" for="labMail" style="color:red"> </td> </tr> <tr> <th align="right"> Ankostsdato: </th> <td> <table cellspacing="0"> <tr> <td> <select name="date"> <option value="0">Dato</option> <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">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> </td> <td> <select name="month"> <option value="0">Måned</option> <option value="januar">Januar</option> <option value="februar">Februar</option> <option value="marts">Marts</option> <option value="april">April</option> <option value="maj">Maj</option> <option value="juni">Juni</option> <option value="juli">Juli</option> <option value="august">August</option> <option value="september">September</option> <option value="oktober">Oktober</option> <option value="november">November</option> <option value="december">December</option> </select> </td> <td> <select name="year"> <option value="0">År</option> <option value="2003">2003</option> <option value="2004">2004</option> </select> </td> <td> <label id="labDate" for="labDate" style="color:red"> </td> </tr> </table> </td> </tr> <tr> <th align="right"> Ankomsttid: </th> <td> <select name="time"> <option value="0">Tid</option> <option value="6-8">06-08</option> <option value="8-10">08-10</option> <option value="10-12">10-12</option> <option value="12-14">12-14</option> <option value="14-16">14-16</option> <option value="16-18">16-18</option> <option value="18-20">18-20</option> <option value="20-22">20-22</option> <option value="22-24">22-24</option> </select> </td> <td> <label id="labTime" for="labTime" style="color:red"> </td> </tr> <tr> <th align="right"> Antal overnatninger: </th> <td> <input type="text" name="nights" size="1"/> </td> <td> <label id="labNights" for="labNights" style="color:red"> </td> </tr> <tr> <th align="right"> Antal personer: </th> <td> <input type="text" name="pers" size="1"/> </td> <td> <label id="labPers" for="labPers" style="color:red"> </td> </tr> <tr> <th align="right"> Evt. yngste barns alder: </th> <td> <input type="text" name="age" size="1"/> </td> </tr> <tr> <th align="right"> Ønskes morgenmad? </th> <td> <input type="radio" name="breakfast" value="ja" checked="checked"> Ja <input type="radio" name="breakfast" value="nej"> Nej </td> </tr> <tr> <th align="right"> Ønskes babyseng? </th> <td> <input type="radio" name="baby" value="ja"> Ja <input type="radio" name="baby" value="nej" checked="checked"> Nej </td> </tr> <tr> <th align="right"> Medbringes husdy? </th> <td> <input type="radio" name="pet" value="ja"> Ja <input type="radio" name="pet" value="nej" checked="checked"> Nej </td> </tr> <tr> <th align="right"> Hvilken art: </th> <td> <input type="text" name="petType" size="20"/> </td> <td> <label id="labPetType" for="labPetType" style="color:red"> </td> </tr> <tr> <th align="right" valign="top"> Evt. bemærkninger: </th> <td> <textarea name="com" COLS="35" ROWS="3"></textarea> <td> </tr> </table> <input type="submit" value="Foretag booking"/> </form> </div> </body> </html>
04. august 2003 - 23:12
#5
Du kan jo lave submit-knappen om til en almindelig knap og så sige onclick="validate();". Så skal du så også lave noget i funktionen om så formen bliver submittet hvis der ingen fejl er.
04. august 2003 - 23:15
#6
Altså lidt ála: ... if(submitOK=="False") { alert("Hej hop!"); return false; } else { document.book.submit(); } ... <form name="book" method="post" action="conf.php" <input type="button" value="Foretag booking" onclick="validate();" /> </form>
04. august 2003 - 23:26
#7
Et forsøg værd!
04. august 2003 - 23:43
#8
Jeg ved ikke hvad det var, da jeg fjernede alle de der document.book.xxx.select(); linier, virkede det? Tak for hjelpen skal I dog begge ha'
05. august 2003 - 00:40
#9
-- hvis du ville have brugt det til noget, er en select alene også fuldstændig ligegyldig, for den virker _kun_ sammen med .focus() ... -- eller ved en senere tabulering rundt på formen !-)
05. august 2003 - 00:45
#10
-- og så et lille trick: Ved at overføre form-objektet til funktionen sparer du mange indtastninger i koden: <form name="book" method="post" action="conf.php" onSubmit="return validate(this)"> function validate(f) { submitOK=true; // Ingen int! if (f.fName.value=="") { document.getElementById('labFName').innerHTML='Indtast dit fornavn!'; f.fName.focus(); submitOK=false; }
05. august 2003 - 09:15
#11
roenving kan du ikke lige sende et svar! Således kan du få lidt point!
05. august 2003 - 12:19
#12
-- næh behold du bare dine points ;O) -- bare du får det til at spille !-)
05. august 2003 - 12:22
#13
Jo tak, det spiller!
Vi tilbyder markedets bedste kurser inden for webudvikling