PHP týden Předvánoční slevová akce
Pouze tento týden sleva až 80 % na PHP e-learning!
Využij předvánočních slev a získej od nás 20 % bodů zdarma! Více zde

Diskuze: input text - volani funkce pri zmene

Aktivity (2)
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 10:29

Potrebuji pri kazde zmene inputu zavolat funkci pro zmenu. Jak se to dela, jake eventy podchytit?
onkeyup="FTAB­.readTab();" onblur="FTAB.re­adTab();" oninput="FTAB­.readTab();" onpaste="FTAB­.readTab();"

Kdyz ve firefoxu kliknu do inputu, rozbali mi seznam drive vyplnenych hodnot. Na jednu kliknu, vyplni se do inputu. Ale zadny z vys vypsanych eventu na to nereaguje. Zoufaly, uz nevim, co s tim.

Zkusil jsem:

Chci docílit:

 
Odpovědět
14. listopadu 10:29
Avatar
Jan Hlavatý
Člen
Avatar
Jan Hlavatý:14. listopadu 11:48

Ahoj, a onchange() by nefungoval?

 
Nahoru Odpovědět
14. listopadu 11:48
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 12:05

Je to dost zvlastni. Vetsinou z toho napovidajiciho okna to reaguje na oninput. Mozna, ze mi to blokuje bootstrap.
Onchange by prave na inputu nemelo fungovat, to je pro selecty. Ale to se mi tam objevi obcas taky.

<form>
<input name="name"
 onkeyup="f(this,'up')"
 onblur="f(this,'blur')"
 oninput="f(this,'input')"
 onpaste="f(this,'paste')"
 onchange="f(this,'change')"
 onclick="f(this,'click')"
 onmouseup="f(this,'mouseup')"
>
<input type="submit">
</form>

<script>
function f(el,str) {el.parentNode.appendChild(document.createTextNode(str+' '));}
</script>
Editováno 14. listopadu 12:06
 
Nahoru Odpovědět
14. listopadu 12:05
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 12:10

Zvlastni je, ze to v 9 z 10 testu funguje, aspon jeden event a ten jeden se nechytne ani oninput. Coz by podle mozilove dokumentace melo. A nechyti se nic, kdyz vyberu stejnu hodnotu, jaka tam je, coz je pochopitelne.
A ten 1 stav mne prave trapi, protoze presne tohle muzou testeri udelat. Aspon mi se to podarilo 3x zopakovat nez jsem dosel na to, ze nereaguje prave event.

 
Nahoru Odpovědět
14. listopadu 12:10
Avatar
Jan Hlavatý
Člen
Avatar
Jan Hlavatý:14. listopadu 14:01

To je fakt podivný...nicméně mě to funguje na ff (oninput) 20 krát i s bootstrapem..­.onchange na ff nefunguje na chromu ano.

 
Nahoru Odpovědět
14. listopadu 14:01
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 14:13

Dal jsem tam 6 eventu a uvidime.

 
Nahoru Odpovědět
14. listopadu 14:13
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jan Hlavatý
Člen
Avatar
Jan Hlavatý:14. listopadu 14:24

Dřív to byla chyba ve ff ale podle nich už to opravili

 
Nahoru Odpovědět
14. listopadu 14:24
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 14:31

Muzu dat i demicko
http://mlich.zam.slu.cz/…proj_add.htm

Zahájení realizace

  • oznacis text "{form_realiza­ce_datum_star­t}", vyplnis 1.1.2014
  • {form_realiza­ce_datum_end}, 1.1.2016
  • odrolujes mysi a dole se objevi takova tabulka "FINANCE", pod ni je tlacitko Export CSV.

Ted klikni dole ulozit, aby si ulozil tebou vyplnena policka. (vypise error, pak zpet tlacitko na formular)
Ctrl+f5, refresh, ale aby si nepamatoval vyplnene udaje.

  • oznacis prvni datum, napises 1, nabidne ti 1.1.2014, kliknes
  • oznacis druhe datum, napises 1, nabidne ti 1.1.2016, kliknes
  • ted dal nic neklikas, odrolujes a tabulka nikde. Az kdyz nekam kliknes, aktivuje se onblur a tabulku vypise.

Zkousel jsem to jen ve FF. A dela to i bez bootstrapu, jak je videt.

Je to template, ktery dal prepisuje pak php, proto je tam spousta nesmyslu.
V programu to mam pod heslem, firemnim, jinak bych te tam klidne pustil.

Editováno 14. listopadu 14:33
 
Nahoru Odpovědět
14. listopadu 14:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14. listopadu 14:34

FF 70.0.1 (32 bitů) / W10

 
Nahoru Odpovědět
14. listopadu 14:34
Avatar
Lukáš Křehula
Redaktor
Avatar
Odpovídá na Peter Mlich
Lukáš Křehula:14. listopadu 15:10

S autofillem je to celkem zrádné, protože se každej prohlížeč chová jinak. Obecně je lepší tohle chování vypnout (autocomplete="of­f") nebo si vytvořit nějaký script, který ti bude v pravidelném intervalu hlídat změny v inputech a pak volat událost onChange.

Jde to samozřejmě udělat jednoduše, script bude kontrolovat všechna políčka a hlídat změny, chytřejší přístup ale bude kontrolovat změny pouze na focusnutém políčku.

Nicméně zkus se nejdřív zamyslet nad tím, jestli je to opravdu potřeba generovat real-time, jestli by třeba nebylo jednodušší to "obejít" nějakým tlačítkem "Vygenerovat tabulku".

 
Nahoru Odpovědět
14. listopadu 15:10
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15. listopadu 7:44

Jo, o tlacitku tez uvazuji uz delsi dobu. Uz z duvodu, ze jim to muze smazat data, kdyz omylem to policko smazou. Ikdyz jsou tam jakesi kontrolni mechanizmy, ktere proces noveho generovani pri nejasnostech stopnou.
Musim pockat na zpetnou vazbu.

 
Nahoru Odpovědět
15. listopadu 7:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.