Az oldal ujratöltődik
Ü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.
■ 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>
Csúnya, nagyon csúnya...
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:
Nagyon köszönöm