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.


<html> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Szöveges tizedestörtek leírása számmal</title>

<script>
//*****************
var EgyesStr = [ [''], ['egy'], ['kettő'], ['három'], ['négy'], ['öt'], ['hat'], ['hét'], ['nyolc'], ['kilenc'] ];
var TizesStr = [  [''], ['tíz'], ['húsz'], ['harminc'], ['negyven'], ['ötven'], ['hatvan'], ['hetven'], ['nyolcvan'], ['kilencven'] ];
var TizenStr = [ [''], ['tizen'], ['huszon'], ['harminc'], ['negyven'], ['ötven'], ['hatvan'], ['hetven'], ['nyolcvan'], ['kilencven'] ];
var TizedStr = [ [''], ['tized'], ['század'], ['ezred'], ['tízezred'] ]; 

//****************
function Alakit( M, Oszto, Osztonev)
  { Maradek=M;
    if (Maradek >= Oszto) 
    {
      if (Result.length > 0) {Result = Result + '-';}
      Mit = parseInt(Maradek /Oszto);   
      if (Mit >= 100) {   Result = Result + EgyesStr[parseInt(Mit/100)] + 'száz'; } 
      Mit = Mit % 100;
      if (Mit % 10 != 0) { 
        Result = Result + TizenStr[parseInt(Mit /10)] + EgyesStr[Mit % 10] + Osztonev;}
      else
        {Result = Result + TizesStr[parseInt(Mit / 10)] + Osztonev; }
    Maradek = Maradek % Oszto; 
	
  } }
  //*****************
 function Alakit2( M, Oszto, Osztonev)
  { Maradek=M;
    if (Maradek >= Oszto) 
    {
      if (Result.length > 0) {Result = Result + '-';}
      Mit = parseInt(Maradek / Oszto);   
      if (Mit >= 100) {   Result = Result + EgyesStr[parseInt(Mit / 100)] + 'száz'; } 
      Mit = Mit % 100;
      if (Mit % 10 != 0) { 
        Result = Result + TizenStr[parseInt(Mit /10)] + EgyesStr[Mit % 10] + Osztonev;}
      else
        {Result = Result + TizedStr[parseInt(Mit / 10)] + Osztonev; }
    Maradek = Maradek % Oszto; 
	 }
 }
///*****************  
var Maradek;var Mit2; var Result = ''; var a; var Mit; var mar;
function uj()
{ Result='';
a=(Math.floor(Math.random()*2)+1);
if (a==1) { Mit2=Math.floor((Math.random()*290)+500)*10;} 
	else  { Mit2=(Math.floor((Math.random()*8)+2)*100)+Math.floor(Math.random()*8)+1;}
a=(Math.floor(Math.random()*2)+1);
if (a==1) {Mit2=(Mit2*1000+Math.floor((Math.random()*8)+1)*10+Math.floor((Math.random()*8)+1))/1000;} else 
          {Mit2=(Mit2*1000+Math.floor((Math.random()*8)+2)*100+Math.floor((Math.random()*8)+1))/1000;}

Mit=parseInt(Mit2);						// Legyen benne 0 is.
Mit2=Mit2*1000; Mit=Mit*1000; 
Mar=Mit2-Mit; Mit2=Mit2/1000; Mit=Mit/1000; 
Mar=parseInt(Mar*1000)/1000; 

  if (Mit == 0) {Result = 'Nulla';}
  else
  {
    Maradek = Math.abs(Mit);  
    Alakit(Maradek, 1000000000, 'milliárd');
    Alakit(Maradek, 1000000, 'millió');
    Alakit(Maradek, 1000, 'ezer');
    Alakit(Maradek, 1, 'egész');
	Maradek=Mar; 
	Alakit2(Maradek, 1000, '');
	Alakit2(Maradek, 1, 'ezred');
    Result=Result.substr(0, 1).toUpperCase() + Result.substr(1);
    if (Mit < 0) {      Result = 'Mínusz ' + Result;}
  }

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>' ;
document.forms['szgep2'].elements['er'].focus(); 
  
  
}
//****************************-

  </script>
</head>

<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;' >
<h5><div id='lepes' style='float: left; border:0px solid;margin-top:0px;'> </div></h5>
<center><h1>Szöveges tizedestörtek leírása számmal</h1></center><br />
<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>
<script>  var felsz=1; max=2; var hiba=0;

document.getElementById("lepes").innerHTML=felsz+'/'+max;

uj();

//*************************		
   function ell()
   { 
   a=(document.szgep2.er.value); 
   if (Mit2==a) {  felsz++;
		if (felsz>max) {		
			document.getElementById("lepes").innerHTML='';
			document.getElementById("szam").innerHTML='<h1>Megoldottad a feladatot<br />Hibák száma:'+hiba+'</h1></center>';
			document.getElementById("szam").innerHTML+='<br/><br/><form action="szam3.html"> <center><input type="submit" value=" Újra " style="font-size: 16pt"></center></form>';
			document.getElementById("szam").innerHTML+='<form action="/szalina/index.php"><center><input type="submit" value=" Kilépés " style="font-size: 16pt"></center></form><h1>';	
				} else { document.getElementById("lepes").innerHTML=felsz+'/'+max; uj(); } 
				} else { alert('Hibás válasz!'); hiba++;
				document.forms['szgep2'].elements['er'].focus();}
	}   
  
</script>
</body>
</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:
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.