Determinare cu JavaScript ce tasta e apasata

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
claUdiu
Mesaje:313

Determinare cu JavaScript ce tasta e apasata

Buna, am si eu o intrebare:

cum pot afla ce sageata a apasat utilizatorul cu javascript?

Ms
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Salut
Se pot folosi proprietatile keyCode si charCode .
Fiecare tasta returneaza un cod.
Exemplu urmator afiseaza in fereastra alert codul tastei apasate. Pe baza acelui cod poti crea conditii sa execute ce instructiuni vrei.

Cod: Selectaţi tot

<script type="text/javascript">
function displayunicode(e){
var unicode = e.keyCode ? e.keyCode : e.charCode
alert(unicode)
}
</script>
<form>
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" />
</form>

claUdiu Mesaje:313
Multumesc. Am facut asta:

Cod: Selectaţi tot

<script type="text/javascript">
function displayunicode(e){
var unicode = e.keyCode ? e.keyCode : e.charCode


if(unicode == 37){

var PrimaPoza = document.getElementById('1').innerHTML;

alert(PrimaPoza);

}else if(unicode == 39){

var ADouaPoza = document.getElementById('2').innerHTML;

alert(ADouaPoza);

}
}
</script>
<form>
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" />

<div id="1">Prima poza</div>
<div id="2">A doua poza</div>
</form>
si merge bine. Acum am alta intrebare. Eu vreau sa-l implementez la alt ceva. Vreau ca vizitatorul/utilizatorul sa nu introduca in input tasta, ci sa apese cand vrea dreapta si sa-i aratate divul cu id-ul 2... Cum fac asta? Nu-mi pot da seama.... ms
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Adauga "onkeyup" la tag-ul body, dupa cum e in acest exemplu:

Cod: Selectaţi tot

<body onkeyup="getKey(event);">

<script type="text/javascript">
// arata div la apasarea sagetilor stanga /dreapta - marplo.net
function getKey(e){
  var unicode = e.keyCode ? e.keyCode : e.charCode;     // preia codul tastei apasate

  // ascunde div-urile ca sa faca vizibil pe cel care trebuie
  document.getElementById('d1').style.display = 'none';
  document.getElementById('d2').style.display = 'none';

  // afiseaza div-ul in functie de codul tastei
  if(unicode == 37){
    var PrimaPoza = document.getElementById('d1').innerHTML;
  document.getElementById('d1').style.display = 'block';
    alert(PrimaPoza);
  }
  else if(unicode == 39){
    var ADouaPoza = document.getElementById('d2').innerHTML;
    document.getElementById('d2').style.display = 'block';
    alert(ADouaPoza);
  }
}
</script>
<div id="d1" style="display:none;">Prima poza</div>
<div id="d2" style="display:none;">A doua poza</div>

</body>