Autor Zpráva
Pavel978
Profil *
Zdravím místní odborníky,

mám problém s odchytáváním znaků zadaných uživatelem do inputu. Problém spočívá ve zpětném převodu zpátky na znak.
Na keydown mám:

if (typeof(window.event) != "undefined") {
  	   key = window.event.keyCode;  	   
  	}
  	else if (e){
  	   key = e.which;
  	}
  	else
  	   return true;


jdu podle tabulky na http://unixpapa.com/js/key.html
dostávám kódy ze sloupců Mozilla keycodes, IE keycodes ale když to chci převést zpátky na znak fcí String.fromCharCode(), tak potřebuju ten ASCII kód, poradí někdo jak na to?
Chamurappi
Profil
Reaguji na Pavla978:
Odkázaná stránka v tom zmatku nachází větší vědu, než tam je.
Existují dvě různá čísla — číslo klávesy a číslo znaku. V Mozille je číslo klávesy vždy v keyCode a číslo znaku je pouze při onkeypress dostupné v charCode. Explorer dává při onkeypress do keyCode číslo znaku a vlastnost charCode vůbec nezná.

Na keydown mám
V Exploreru nejde zjistit číslo znaku při onkeydown.

Pokud by ti nevadilo použití onkeypress, řešení je celkem triviální:
tenTvujInput.onkeypress = function(e)
{
  var event = e || window.event;
  var kodZnaku = event.charCode || event.keyCode;
  var znak = String.fromCharCode(kodZnaku);
  alert(znak);
};

Edit: Přejmenoval jsem proměnnou „klavesa“ na smysluplnější „kodZnaku“.
Pavel978
Profil *
Díky za odpověď,
používám jQuery fci http://docs.jquery.com/Events/keydown ... v IE funguje tedy, ale problém je právě že var event = e || window.event; mi nedá kód v ASCII, který potřebuji (jak jsem pochopil) pro fci String.fromCharCode(klavesa).
Chamurappi
Profil
Reaguji na Pavla978:
problém je právě že var event = e || window.event; mi nedá kód v ASCII, který potřebuji
Hodně by mě překvapilo, kdyby tento řádek dal ASCII kód. Ten jen vyrovnává nekompatibilitu mezi prohlížeči, kterou nejspíš ve tvém případě vyrovná už jQuery.

používám jQuery fci htttp://docs.jquery.com/Events/keydown
Čemu nerozumíš na „v Exploreru nejde zjistit číslo znaku při onkeydown“?
Pavel978
Profil *
Aha, díky. Já myslel, že nefunguje vůbec, při použití keypress bez problémů...ještě jednou díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0