Autor Zpráva
Jiri Casek
Profil
Prosím nemůžu najít
1. Jak se nastavuje, aby input type text měl vlastnost onFocus při načtení stránky
onLoad="onFocus" ???

2. Jak se odchycuje jedna klávesa?
Asi tam bude událost onKeyPress a potom nějaká podmínka
if(onKeyPress="v")
else .....

Co se používá? ASCII? Jak zjistím, jaká klávesa má jaký kód?

děkuji
Alastor_Kopal
Profil
2. to onKeyPress bys měl přiřadit k něčemu nejlepší asi bude

<body onkeydown="klavesa(zmacknuti);">

<script>
function klavesa(zmacknuti)
{
  switch(event.keyCode) {
    case (číslo klávesy): (sem dáš co potřebuješ) break;
    case 13: alert("Zmáčknul jsi enter"); break; // po zmáčknutí enteru vyhodí hlášku
  }
}
</script>

seznam kláves najdeš třeba na
http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx
Jiri Casek
Profil
prosim jeste ten focus.
zkoušel jsem si dívat na nějake stránky, kde je input type text ihned zameřen, ale nemohu to najit.
Chamurappi
Profil
Reaguji na Jiriho Caska:
ale nemohu to najit
Stačí hledat slova „focus“ a „načtení“ a nacházím mimo jiné tohle:
Automatická aktivace pole po načtení stránky
Kurzor v inputu
Jak po načtení stránky dosáhnout aktivního kurzoru ve formu?

Jak se odchycuje jedna klávesa?
Pomocí onkeydown. Nepoužívej onkeypress, pokud nemáš zájem o problémy s kompatibilitou.
Jiri Casek
Profil
Ještě k tomu odchycení enteru - jak by ta funkce vypadala pomocí if?
Chamurappi
Profil
Reaguji na Jiriho Caska:
Viz Větvení v jazyce JavaScript. Číslo klávesy „enter“ je 13. Číslo stisknuté klávesy je v event.keyCode.
Jiri Casek
Profil
<script>
function klavesa() 
{
  if(event.keycode == 13){ document.getElementById('vysledek').innerHTML=document.tab.text1.value;}
  
  }
</script>
	    
<div onkeydown="klavesa();">

<table cellspacing="0" border="1" cellpadding="6" rules="none" name="tab">
  <tr><th>popis</th><th>textové pole</th><th>výsledek - zadali jste</th></tr>
  <tr><td>již zaměřené textové pole</td><td><input type="text" name="text1" id="zameren" /></td><td id="vysledek"></td></tr>
</table>

někde je chyba
Chamurappi
Profil
Reaguji na Jiriho Caska:
někde je chyba
Třeba v tom, že document.tab není nic. Tento způsob adresování funguje jen u formulářů, na tabulku name nepatří.
Událost onkeydown bych na tvém místě nechytal na <div>u, ale na nějakém elementu, do kterého má smysl psát (což je třeba <input>).
Jiri Casek
Profil
<script>
function klavesa() 
{
  if(event.keyCode == 13){ document.getElementById('vysledek').innerHTML=document.text1.value;}
  
  }
</script>
	    

<table cellspacing="0" border="1" cellpadding="6" rules="none" name="tab">
  <tr><th>popis</th><th>textové pole</th><th>výsledek - zadali jste</th></tr>
  <tr><td>již zaměřené textové pole</td><td><input type="text" name="text1" id="zameren" onkeydown="klavesa();" /></td><td id="vysledek"></td></tr>
</table>



<script type="text/javascript">
document.getElementById("zameren").focus();

</script>

a lze teda vytáhnout value, aniž bych to dal formaluře?
Jiri Casek
Profil
Ať dělám co chcu, tak nejsu schopen pracovat s odchycenou klávesou.
Podotýkám- přiřadit událost zkouším jak na <input>, tak na <body>(u všech příkladů)
tohle funguje nenapíše se písmeno a vyzkočí alert s kódem
<div onkeydown="alert(event.keyCode)">
<p>pokus odchytávání klávesy</p>
<input type="text" />
</div>

------------------------------------------------------
Tohle už nefunguje
<script type="text/javascript">
function zmacknuti(kod) {
if(kod == 84){"alert('stisknul jsi t')";}
}
</script>


<div onkeydown="zmacknuti(event.keyCode)">
<p>pokus odchytávání klávesy s volanim funkce</p>
<input type="text"  />
</div>

pokud to správně chápu, tak by se měl do parametru funkce vložit kód klávesy.
-------------------------------------------------
další příklady, co jsem zkoušel, ale nic nefunguje

<script type="text/javascript">
function zmacknuti() {
if(event.keyCode == 84){
event.returnValue=false;
window.alert("Na tento blok textu neklikat!!");
}
}

</script>


<div onkeydown="zmacknuti()">
<p>pokus odchytávání klávesy s volanim funkce</p>
<input type="text"  />
</div>

---------------------------------------------------------
<script>function cislo(){
if (event.keyCode 
< 48 || event.keyCode > 57)
event.returnValue= false;}
</script>

<input type="text" onKeyPress="cislo()">

zkopírovanej příklad-nefunguje
----------------------------------------------------

<body onKeyPress=code();>
<form name="form">
<input type="text" name="form2">
<script>
function code(){ 
document.form.form2.value=event.keyCode;
}
</script>

zkopírovaný příklad-nefunguje
----------------------
<script type="text/javascript">
function zmacknuti(kod) {
var kod = "event.keyCode";
if(kod == 84){"alert('stisknul jsi t')";}
}
</script>


<div onkeydown="zmacknuti(kod)">
<p>pokus odchytávání klávesy s volanim funkce</p>
<input type="text"  />
</div>
Jiri Casek
Profil
prosím o vysvětlení. Stále to nechápu
<script type="text/javascript">
function getkey(e)
{
  var code;
  if (!e)
    var e = window.event; // nastaveni pro IE
  if (e.keyCode)
    code = e.keyCode; // IE a Mozilla
  else
    if (e.which)
      code = e.which; // NN4
  return code;
}
function numeric(eX)
{
  test=getkey(eX);
  if (test<48 || test>57)
    return false;
}
function stisk(eX)
{
  klavesa=getkey(eX);
  if (klavesa==84) {alert('stikl jsi');}
}
</script>

<form>
<input type="text" onkeypress="return numeric(event);" size="40" />
<input type="text" onkeypress="stisk(event);" />
<input type="text" onkeypress="if(getkey(e)==84)alert('stikl jsi')" />
</form>


Našel jsem si další funkční příklad na omezení kláves.
Zřejmně je potřeba ten kód klávesy nějak deklarovat? (? znamená dotaz, jestli se mýlím, nebo ne)

Proč neguje parametr (!e) ?

return code - Funkce numeric si zavolá funkci getkey a ta jí vrátí vydeklarovanou proměnnou code, tedy kód klávesy?

return numeric(event) - vůbec nechápu return. Jinak volá funkci numeric a jako parametr dosazuje událost event? Proč když je vzápětí negována?

return false ve funkci numeric - zajistí, že funkce odešle nepravdu a proto se písmena nenapíší?

A proč stále nefunguje alert na jednu klávesu. Kód klávesy už mám pěkně v proměnné.
děkuji
zvěřiňák
Profil
Tohle jsem vyšťoural někde na netu:
<script type="text/javascript">
document.onkeyup = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 84){
alert('stisknul jsi t');
}
}
</script>
<div>
<p>pokus odchytávání klávesy</p>
<input type="text">
</div>

Funguje to, ale vysvětlit to bude muset nějaký větší odborník.
Jiri Casek
Profil
opravdu zajímavý a kdyby se našel někdo s vysvětlením, tak by to bylo krásné. Tohle opravdu funguje, ale chtělo by to pchopit aby to člověk byl schopen použít. Zajímáve, že jak se tu funkci pokusím zavolat jinak (přímo z inputu, nebo z form), tak to zase nefunguje.
zvěřiňák
Profil
Takhle to jde úplně nejjednodušeji:
<script type="text/javascript">
function keyUp(evt)
{
if(evt.keyCode == 84){alert('stisknul jsi t');}
}
</script>
<div>
<p>pokus odchytávání klávesy s volanim funkce</p>
<input type="text" onkeyup="keyUp(event);">
</div>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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