ugrás a tartalomhoz

Az oldal ujratöltődik

cica · 2014. Ápr. 26. (Szo), 18.19
Üdv!

Készítek egy progit. Betűvel kiírja a számot és tudni kell visszaírni számmal.
A minta http://forum.prog.hu/tudastar/82129/Szamok+kiirasa+betuvel+magyarul.html oldalról van.

Ha egérrel kattintok a "következő" gombra akkor jó.
Az a gondom ha a text mezőn van a fókusz akkor ENTERre újratöltődik az oldal.

Segítséged köszönöm.
  1. <html>   
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4. <title>Szöveges tizedestörtek leírása számmal</title>  
  5.   
  6. <script>  
  7. //*****************  
  8. var EgyesStr = [ [''], ['egy'], ['kettő'], ['három'], ['négy'], ['öt'], ['hat'], ['hét'], ['nyolc'], ['kilenc'] ];  
  9. var TizesStr = [  [''], ['tíz'], ['húsz'], ['harminc'], ['negyven'], ['ötven'], ['hatvan'], ['hetven'], ['nyolcvan'], ['kilencven'] ];  
  10. var TizenStr = [ [''], ['tizen'], ['huszon'], ['harminc'], ['negyven'], ['ötven'], ['hatvan'], ['hetven'], ['nyolcvan'], ['kilencven'] ];  
  11. var TizedStr = [ [''], ['tized'], ['század'], ['ezred'], ['tízezred'] ];   
  12.   
  13. //****************  
  14. function Alakit( M, Oszto, Osztonev)  
  15.   { Maradek=M;  
  16.     if (Maradek >= Oszto)   
  17.     {  
  18.       if (Result.length > 0) {Result = Result + '-';}  
  19.       Mit = parseInt(Maradek /Oszto);     
  20.       if (Mit >= 100) {   Result = Result + EgyesStr[parseInt(Mit/100)] + 'száz'; }   
  21.       Mit = Mit % 100;  
  22.       if (Mit % 10 != 0) {   
  23.         Result = Result + TizenStr[parseInt(Mit /10)] + EgyesStr[Mit % 10] + Osztonev;}  
  24.       else  
  25.         {Result = Result + TizesStr[parseInt(Mit / 10)] + Osztonev; }  
  26.     Maradek = Maradek % Oszto;   
  27.       
  28.   } }  
  29.   //*****************  
  30.  function Alakit2( M, Oszto, Osztonev)  
  31.   { Maradek=M;  
  32.     if (Maradek >= Oszto)   
  33.     {  
  34.       if (Result.length > 0) {Result = Result + '-';}  
  35.       Mit = parseInt(Maradek / Oszto);     
  36.       if (Mit >= 100) {   Result = Result + EgyesStr[parseInt(Mit / 100)] + 'száz'; }   
  37.       Mit = Mit % 100;  
  38.       if (Mit % 10 != 0) {   
  39.         Result = Result + TizenStr[parseInt(Mit /10)] + EgyesStr[Mit % 10] + Osztonev;}  
  40.       else  
  41.         {Result = Result + TizedStr[parseInt(Mit / 10)] + Osztonev; }  
  42.     Maradek = Maradek % Oszto;   
  43.      }  
  44.  }  
  45. ///*****************    
  46. var Maradek;var Mit2; var Result = ''var a; var Mit; var mar;  
  47. function uj()  
  48. { Result='';  
  49. a=(Math.floor(Math.random()*2)+1);  
  50. if (a==1) { Mit2=Math.floor((Math.random()*290)+500)*10;}   
  51.     else  { Mit2=(Math.floor((Math.random()*8)+2)*100)+Math.floor(Math.random()*8)+1;}  
  52. a=(Math.floor(Math.random()*2)+1);  
  53. if (a==1) {Mit2=(Mit2*1000+Math.floor((Math.random()*8)+1)*10+Math.floor((Math.random()*8)+1))/1000;} else   
  54.           {Mit2=(Mit2*1000+Math.floor((Math.random()*8)+2)*100+Math.floor((Math.random()*8)+1))/1000;}  
  55.   
  56. Mit=parseInt(Mit2);                     // Legyen benne 0 is.  
  57. Mit2=Mit2*1000; Mit=Mit*1000;   
  58. Mar=Mit2-Mit; Mit2=Mit2/1000; Mit=Mit/1000;   
  59. Mar=parseInt(Mar*1000)/1000;   
  60.   
  61.   if (Mit == 0) {Result = 'Nulla';}  
  62.   else  
  63.   {  
  64.     Maradek = Math.abs(Mit);    
  65.     Alakit(Maradek, 1000000000, 'milliárd');  
  66.     Alakit(Maradek, 1000000, 'millió');  
  67.     Alakit(Maradek, 1000, 'ezer');  
  68.     Alakit(Maradek, 1, 'egész');  
  69.     Maradek=Mar;   
  70.     Alakit2(Maradek, 1000, '');  
  71.     Alakit2(Maradek, 1, 'ezred');  
  72.     Result=Result.substr(0, 1).toUpperCase() + Result.substr(1);  
  73.     if (Mit < 0) {      Result = 'Mínusz ' + Result;}  
  74.   }  
  75.   
  76. document.getElementById("szam").innerHTML='<div class="szam">'+Result+'<br /><br /><br /><form name="szgep2" id="szgep2"><input type="text" name="er" id="er" style="font-size: 46pt" size="10" maxlength="10"></div><div class="szam2"><h4>Tizedespontot használj!</h4><br /><input type="submit" value=" Következő " style="font-size: 26pt" onclick="ell();return false;" name="sb1" /></form></div>' ;  
  77. document.forms['szgep2'].elements['er'].focus();   
  78.     
  79.     
  80. }  
  81. //****************************-  
  82.   
  83.   </script>  
  84. </head>  
  85.   
  86. <body onbeforecopy="return false" oncontextmenu="return false" oncopy="return false" ondragstart="return false" onselect="return false" onselectstart="return false"  bgcolor=ivory span style='font-size:13pt; margin: 30px 30px 0px 30px;' >  
  87. <h5><div id='lepes' style='float: left; border:0px solid;margin-top:0px;'> </div></h5>  
  88. <center><h1>Szöveges tizedestörtek leírása számmal</h1></center><br />  
  89. <h1><div id='szam' style='text-align:center; border:0px solid; padding:5px; width:80%; margin-left:auto; margin-right:auto;margin-top:0px ;margin_bottom:0px';>Töltöm a programot</div></h1>  
  90. <script>  var felsz=1; max=2; var hiba=0;  
  91.   
  92. document.getElementById("lepes").innerHTML=felsz+'/'+max;  
  93.   
  94. uj();  
  95.   
  96. //*************************       
  97.    function ell()  
  98.    {   
  99.    a=(document.szgep2.er.value);   
  100.    if (Mit2==a) {  felsz++;  
  101.         if (felsz>max) {       
  102.             document.getElementById("lepes").innerHTML='';  
  103.             document.getElementById("szam").innerHTML='<h1>Megoldottad a feladatot<br />Hibák száma:'+hiba+'</h1></center>';  
  104.             document.getElementById("szam").innerHTML+='<br/><br/><form action="szam3.html"> <center><input type="submit" value=" Újra " style="font-size: 16pt"></center></form>';  
  105.             document.getElementById("szam").innerHTML+='<form action="/szalina/index.php"><center><input type="submit" value=" Kilépés " style="font-size: 16pt"></center></form><h1>';   
  106.                 } else { document.getElementById("lepes").innerHTML=felsz+'/'+max; uj(); }   
  107.                 } else { alert('Hibás válasz!'); hiba++;  
  108.                 document.forms['szgep2'].elements['er'].focus();}  
  109.     }     
  110.     
  111. </script>  
  112. </body>  
  113. </html>  
 
1

Csúnya, nagyon csúnya...

N0r3i · 2014. Ápr. 26. (Szo), 21.11
Szia!

Mindenképpen próbáld meg máshogy szervezni a kódot, a megjelenítést és a JS kódokat szétválasztani, a kétféle oldalt 2 külön fájlban megoldani, mert így nagyon áttekinthetetlen, lehetetlen validálni.

Azért némi bogarászással végül megtaláltam a hiba okát (amit nem követtél volna el, ha okosan szervezted volna a kódod): a 76. sorban összeállított html szövegben a div-ek és a form "keresztben" van.
Helyesen így kellene:
  1. document.getElementById("szam").innerHTML='<form name="szgep2" id="szgep2"><div class="szam">'+Result+'<br /><br /><br /><input type="text" name="er" id="er" style="font-size: 46pt" size="10" maxlength="10"></div><div class="szam2"><h4>Tizedespontot használj!</h4><br /><input type="submit" value=" Következő " style="font-size: 26pt" onclick="ell();return false;" name="sb1" /></div></form>' ;    
Norbi
2

Nagyon köszönöm

cica · 2014. Ápr. 27. (V), 01.35
Nagyon köszönöm.