ugrás a tartalomhoz

onmouseover submit gombon

Blackfriar · 2006. Ápr. 14. (P), 17.39
Segítsetek mi lehet az oka annak, hogy az alábbi kód IE alatt OK,

FF esetén több alert ablak is bejön és villódzik az ablak.
  1. <script type="text/javascript">  
  2. function check(){  
  3. if(document.vk.nev.value=="" && document.vk.uzenet.value=="") {alert("Nem adott meg nevet és üzenetet sem írt !")}  
  4.    else {if(document.vk.nev.value=="") {alert("Nem adott meg nevet !")}   
  5.     else {if(document.vk.uzenet.value=="") {alert("Nem írt üzenetet !")}}}}  
  6. </script>  
  7. </head>  
  8. <body>  
  9. <form name="vk" action="guestbook.php" method="post">  
  10. <table align="center" border="1" cellpadding="0" cellspacing="0">  
  11. <tr><td align="center">  
  12. <table bgcolor="#e8eeee" border="0" cellpadding="2" cellspacing="2">  
  13. <tr><td><b>név:</b></td><td><input type="text" size="40" maxlength="60" name="nev"></td></tr>  
  14. <tr><td><b>e-mail:</b></td>  
  15. <td><input type="text" size="40" maxlength="60" name="mail"></td></tr>  
  16. <tr><td><b>üzenet:</b></td><td><textarea cols="65" rows="6" name="uzenet"></textarea></td></tr>  
  17. <tr><td></td><td align="center"><input class="gomb" type="submit" value="Elküld" onmouseover="check()" /><input type="text" size="10" style="visibility:hidden" /><input class="gomb" type="reset" value="Mégse" /></td></tr>  
  18. </table>  
  19. </td></tr>  
  20. </table>  
  21. </form>  
 
1

Próbáld így

Anonymous · 2006. Ápr. 14. (P), 17.51
  1. function check() {  
  2.  if(document.vk.nev.value=="") {  
  3.   alert("Nem adott meg nevet !");  
  4.   document.vk.nev.focus();  
  5.   return false;  
  6.  }  
  7.  if(document.vk.uzenet.value=="") {  
  8.   alert("Nem írt üzenetet !");  
  9.   document.vk.uzenet.focus();  
  10.   return false;  
  11.  }  
  12.  else {  
  13.   document.vk.submit();  
  14.  }  
  15. }  
2

--

Blackfriar · 2006. Ápr. 14. (P), 18.14
Hát a probléma ugyanaz sajna.

Azért köszi a segítséget.

Egyéb ötlet?
3

onmouseover?

Táskai Zsolt · 2006. Ápr. 14. (P), 20.23
ez azért durván hangzik. amíg felette állok, addig alerteket dobál? vagy mi itt a cél? a form onsubmitjára szoktak validálni, bár nyilván elképzelhető, hogy neked valami speciálisabb igényt kell kiszolgálni, akkor nem szóltam.
Tasi
4

--

Blackfriar · 2006. Ápr. 14. (P), 20.28
egyszerűen csak azt szerettem volna, hogy a form elküldése előtt lecsekkeljem, hogy minden mező ki van-e töltve.

mellesleg akkor valaki azt magyarázza már el a primitív agyamnak, hogy IE alatt miért működik???????
6

Nekem működik..

Anonymous · 2006. Ápr. 14. (P), 20.39
..firefox alatt is rendesen
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.     <meta http-equiv="content-type" content="text/html; charset=utf-8">  
  5.     <script type="text/javascript">  
  6.     function check() {  
  7.       if(document.vk.nev.value=="") {  
  8.         alert("Nem adott meg nevet !");  
  9.         document.vk.nev.focus();  
  10.         return false;  
  11.       }  
  12.       if(document.vk.uzenet.value=="") {  
  13.         alert("Nem írt üzenetet !");  
  14.         document.vk.uzenet.focus();  
  15.         return false;  
  16.       }  
  17.       else {  
  18.         document.vk.submit();  
  19.       }  
  20.     }  
  21.     </script>  
  22.   </head>  
  23.   <body>  
  24.     <form name="vk" action="guestbook.php" method="post">  
  25.       <table align="center" border="1" cellpadding="0" cellspacing="0">  
  26.         <tr>  
  27.           <td align="center">  
  28.             <table bgcolor="#e8eeee" border="0" cellpadding="2" cellspacing="2">  
  29.               <tr>  
  30.                 <td>  
  31.                   <b>név:</b>  
  32.                 </td>  
  33.                 <td>  
  34.                   <input type="text" size="40" maxlength="60" name="nev">  
  35.                 </td>  
  36.               </tr>  
  37.               <tr>  
  38.                 <td>  
  39.                   <b>e-mail:</b>  
  40.                 </td>  
  41.                 <td>  
  42.                   <input type="text" size="40" maxlength="60" name="mail">  
  43.                 </td>  
  44.               </tr>  
  45.               <tr>  
  46.                 <td>  
  47.                   <b>üzenet:</b>  
  48.                 </td>  
  49.                 <td>  
  50.                   <textarea cols="65" rows="6" name="uzenet"></textarea>  
  51.                 </td>  
  52.               </tr>  
  53.               <tr>  
  54.                 <td>  
  55.                 </td>  
  56.                 <td align="center">  
  57.                   <input class="gomb" type="submit" value="Elküld" onMouseOver="check()" />  
  58.                   <input type="text" size="10" style="visibility:hidden" />  
  59.                   <input class="gomb" type="reset" value="Mégse" />  
  60.                 </td>  
  61.               </tr>  
  62.             </table>  
  63.           </td>  
  64.         </tr>  
  65.       </table>  
  66.     </form>  
  67.   </body>  
  68. </html>  
8

--

Blackfriar · 2006. Ápr. 14. (P), 21.47
Kedves Anonymous!

Be copy-paste-teltem az általad megadottakat. Nem működik. Ugyanazt csinálja, mint az én eredeti kódom. De nyílván én vagyok a hülye.
5

onsubmit, szabványos JS

Hodicska Gergely · 2006. Ápr. 14. (P), 20.31
Az ilyen fajta ellenőrzésekre az onsubmit esemény használatos.
  1. <form name="vk" action="guestbook.php" method="post" onsubmit="return check()">  
Ilyenkor ha a check függvényben true-val térsz vissza, akkor a form elküldésre kerül, ha false-szal, akkor nem.

Ezenkívül ajánlom Neked, hogy a form elemeit szabványos módon érd el (valószínűleg ennek hiánya okozta az FF alatti rossz működést): document.forms['vk'].elements['uzenet']. Így mindegyik böngészőben működni fog.


Felhő
7

--

Blackfriar · 2006. Ápr. 14. (P), 21.40
Kedves Gergely!

Úgy tűnik az onsubmit a megoldás. Köszönet a segítségért!!!!