billentyű leütés
Üdv!
Készítek egy egyszerű progit mégis gondom van vele.
Az a feladata, hogy kiírja melyik billentyűt nyomd le és azt kell tenni.
A probléma a text mező, szerintem nem felhasználóbarát. A Tab billentyűnél is elállítódik a fókusz. Többször bele kell kattintani a text mezőbe. A másik problémám az Enter leütésekor kezdi előröl. Miért? Lehetne text mező nélkül ezt?
A progit mellékelem.
■ Készítek egy egyszerű progit mégis gondom van vele.
Az a feladata, hogy kiírja melyik billentyűt nyomd le és azt kell tenni.
A probléma a text mező, szerintem nem felhasználóbarát. A Tab billentyűnél is elállítódik a fókusz. Többször bele kell kattintani a text mezőbe. A másik problémám az Enter leütésekor kezdi előröl. Miért? Lehetne text mező nélkül ezt?
A progit mellékelem.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script>
osz=0;rosszvalasz=0;
var tomb = new Array(
new Array("Nyomd le a Backspace-t!", 8),
new Array("Nyomd le a Tab-ot!", 9 ),
//new Array("Nyomd le az Enter-t!", 13),
new Array("Nyomd le a Shift-et!", 16 ),
new Array("Nyomd le a Ctrl-t!", 17),
new Array("Nyomd le az Alt-ot!", 18),
new Array("Nyomd le a Caps lock-ot!", 20),
new Array("Nyomd le az Escape-t!", 27),
new Array("Nyomd le a Page up-ot!", 33),
new Array("Nyomd le a Page down-t!", 34),
new Array("Nyomd le az End-et!", 35),
new Array("Nyomd le a Home-t!", 36),
new Array("Nyomd le a Bal nyilat!", 37),
new Array("Nyomd le a Fel nyilat!", 38),
new Array("Nyomd le a Jobbra nyilat!", 39),
new Array("Nyomd le az Le!", 40)
)
onload = function(){
field = document.getElementById('number_field')
field.onkeydown = keyhit
field.focus()
}
function keyhit(e)
{
if (e!=13){
thisKey = e ? e.which : window.event.keyCode
ell(thisKey) }
}
function ell(press)
{
max=tomb.length;
var ertekeles = 'helytelen';
var kerdes = document.getElementById("bill").innerHTML;
for ( i=0; i < tomb.length ; i++) {
if ((kerdes == tomb[i][0]) && (press == tomb[i][1])) { ertekeles = 'helyes';} }
if (ertekeles == 'helyes')
{ osz+=10;
a++;
document.getElementById("bill").innerHTML=tomb[a][0];
}else {alert('Hibás válasz!'+press); rosszvalasz++;}
if (a==max) {document.getElementById("bill").innerHTML="Vége"+a+' '+max ;}
}
</script>
</head>
<body bgcolor=ivory onbeforecopy="return false" oncontextmenu="return false" oncopy="return false" ondragstart="return false" onselect="return false" onselectstart="return false">
<center>
<h1><div id="bill" style="text-align:center; border:0px solid; padding:5px; width:100%; margin-left:auto; margin-right:auto;" ></h1>
<script>
a=0;
document.getElementById("bill").innerHTML=tomb[a][0];
</script>
<form action="" method="post">
<p><input type="text" id="number_field" name="number_field" value="HA NEM MEGY KATT IDE" size='30' maxlength='10'></p>
</form>
</center>
</body>
</html>




Alapok
Biztos vagyok, hogy hamarosan kapsz kész megoldásokat is, de ne foglalkozz velük, mert inkább csak gondot okoz, nem fogod látni a "nagy képet".
hiba
A Tab billentyűnél is
Ez teljesen természetes. Erre való a
Tabgomb.Teljesen természetes, mivel ekkor elküldi a böngésző az űrlapot.
Mindkettőt meg lehet akadályozni azzal, hogy megakadályozod az események alapértelmezett működését:
falseértékkel térünk vissza.Természetesen lehet. Akkor viszont a
document-en vagy abody-n figyeld a gombok leütését.A new Array használata nem ajánlott, vannak ismert problémás esetei. Használd inkább a
["Nyomd le a Backspace-t!", 8]formát.tovább
<script language="JavaScript">
window.captureEvents(Event.KEYPRESS);
window.onkeypress = kiad;
function kiad(Esemeny){
alert("Ön megnyomta a " + Esemeny.which + " gombot");
window.captureEvents(Event.KEYPRESS);
window.onkeypress = kiad;
}
</script>
</head><body>
Üssön le egy billentyűt!
</body></html>
A captureEvents függvényt
captureEventsfüggvényt tanácsos elfelejteni, mert nem szabványos. HelyetteaddEventListener.Egyébként ez a captureEvents
szerk.: ja nem ie-ben volt hanem mozilla-ban, de a kérdésem attol még fennál a custom event-el kapcsolatban.
Attól függ, mit nevezel
Érdekes módszerekkel
off
Ezt azt hiszem kissé
Sztem félre értesz, én oda
félreértés
Jó tett helyébe....
var
varkulcsszóval, van, amit nem. Utóbbinak hatására a változó globális lesz, illetve a globális változó értékét módosítja, aminek lehetnek kellemetlen mellékhatásai. Ezért legjobb, ha minden változót, ami nem függvény argumentum,varkulcsszóval inicializálsz.Fontos lenne, hogy a kódodat megfelelően, de legalább konzisztensen tagold, például hogy látszódjon, hol ér kezdődik egy
ifés hol végződik egyforciklus.Teljesen igazad van. El
Ha valaki megajándékozna egy kész progival megköszönném.
Mindenkinek köszi a segítséget.
Kész megoldást nem adok, de
Köszi
Hogyan tovább?
Haha
kihasználni
Megköszönném mindenkinek ha csak a témáról írna és nem offolna vagy stb.
Ne haragudj
Nem tudsz felülemelkedni
Semmi közöm hozzá,
Viszont tényleg nincs közöm hozzá, tehát ha bárkit zavar ez a kommentem, nyugodtan törölhető.
Próbáltam nem piszkálódni.
Hú mi lett ebből.
Zárjuk le a témát.
A nextQuestion függvény
nextQuestionfüggvény implementációját kellene befejezned. Ennek ki kellene írni az üzeneteket, valamint kezelni ha vége a mókának.