Zdar, potreboval bych jenom poradit jestli nekdo nevi jak jednoduse vyradit z provozu automaticke odeslani formulare po stisku enter ....
(treba mam formular a 2 ruzne input submity a po stisku enter nechci aby se provedl ani jeden). Dik :)
javascriptem: onkeypress() a return false;
Přito stačí do Gúlu napsat "javascript ignore enter":
Zde nalezené odkazy:
http://www.velocityreviews.com/forums/t97745-need-to-ignore-enter-key-in-form.html
http://www.webreference.com/programming/java_dhtml/chap8/2/
dik moc .... zkusim to.... (javascript ignore enter se mi libi :-D )
Jinak Gúlem zbi rozumí vyhledávač Google.cz ;)
Nějak mi tam vypadly dvě písmenka: PřitoM ... GúGlu..
jakpsatweb - javascript - priklady
onsubmit="return false"
Problem samozrejme nastava bez JS, 2 odesilaci tlacitka ve formulari nemaji, co delat, totiz.
Ja treba pouzivam JS k tomu, abych zmenil action="" a pak odeslu formular. Bez toho je pak tlacitko smazat oznacene slepe a formular se neodesle, ale je mozne smazat kazdou polozku zvlast pres A HREF.
Dalsi takove reseni je pridat SELECT s volbou pridat/upravit/smaza oznacene a jedno odesilaci tlacitko
No, ale vzhledem k tomu že celá stránka pracuje na javascriptu tak uz aby vubec melo talcitko nejaky ucel tak potrebuju js :-D :-D
Ale jinak ti reknu ze potom neni submit funkcni ani po zmacknuti odesilaciho tlacitka :)
(predchozi priklady taky nefungujou tak uz nevim ... :) )
ale nasel jsem neco lepsiho misto input submit ... :-D ::: <input type="button" value="Submit" onclick="this.form.submit( )" />
Jeste sem to nezkousel ale mohlo by to fungovat :)
uz to aji funguje... dik vsem za ochotu...
vsak ano
FORM onsubmit="return false"
zamezi odeslani formulare.
Take tam muzes dat funkci, ktera vyhodnoti nejake podminky a vravi false nebo true. To jsem predpokladal, ze ti to dojde tak nejak :)
Dalsi reseni je nastavit tabindex="" na najaky prvek, aby nebylo vybrano jako default tlacitko formulare. Tudiz na Exter se spusti odkaz nebo formular. Podle toho, kde mas zrovna tabelator klavesu (ovladani webu klavesnici)
A dale je mozne presunout tabindex jako JS .focus() pri onload. To v nekterych prohlizecich nejde.
<input type="button" value="Submit" onclick="this.form.submit( )" />
toto reseni je docela divne. Jednak nektere prohlizece vyzaduji odesilaci tlacitko (ikdyz treba skryte pres CSS), bez nez ti to proste neodeslou.
A druhe se mi nezda formulace
this.form.submit()
this = odkaz na INPUT
a input prece nema vnoreny FORM nebo jo?
Jako nezkousel jsem to, ale podle mne JS konzola vyhodi chybu a nic se nestane.
TAk to se pletes.
1) to funguje :-D
2) this.form.submit() je funkce ktera odesle formular. (a nezavola pritom funkci onsubmit!)
3) napriklad i kdyz mas formular, mas nejake action atd. a nemas tam input submit tak to lze odeslat enterem! (takze přes tabindex je to blbost!) a ten focus velmi podobně:)
chapes? :-D
=Freeze (dreamer.xf.cz)=
To bylo na mne?
Jestli ano,
1 nechapu,
2 o tom nevim, ze this.form.submit() funguje, ale mozne to je. thit odkazuje totiz na ten input a jeho potomek neni preci "form" (tim padem vyhodi konzola undefined misto odeslani). Ale je mozne ,ze to tak funguje a bylo by mozna dobre pridat i odkaz na stranku, ktera rika, jak moc je to kompatibilni s prohlizeci.
3 kdyz tabindex a focus vyhodis jinam, tak ti normalni prohlizec formular neodesle. Pouze v pripade, ze je tam jediny prvek reagujici na entera vetsinou bych toto predpokladal u prohlizecu typu Opera.
=peta=
sry.. bylo :)
1) ja to chapu a opravdu to funguje ! :-)
2)this ukazuje na ten input , ale vyvola funkci ktera odesle formular (form.submit()) :)
3) s tim tam indexem je to asi tak ze je to pekny napad, ale k nicemu. Ukazka: mas obycejny formular, jeden input text, jedna textarea. Nikde zadny submit! Co se stane po stisku enter v input textu? (mimo textarea(to je specificka oblast kde se enterem odradkuje ...)) ? :-D Odesle se formular! (a nikde zadny submit :-D )
=Freeze (dreamer.xf.cz)=
Tak to bys musel dat ukazkovou stranku, ja to nezkousel, mne se textarea normalne radkuje
<form action="index.htm" method="GET" name="formX">
<textarea cols=50 rows=5 name="bbb"></textarea>
<input type="text" value="fff" name="aaa">
<input type="submit">
<a href="#" name="pokus"></a>
</form>
<script>
if (window.focus) {document.formX.pokus.focus();}
</script>
A ja tvrdim, ze neni mozne, aby se ti to na enter odeslalo, pokud mas FF, IE.
Ani na enter v textarea. Takze opravdu nechapu, co mas na mysli ty.
On opravdu neumí číst :D.
>Freeze: Co se stane po stisku enter v input textu? (mimo textarea(to je specificka oblast kde se enterem odradkuje ...))
>>peta: ...mne se textarea normalne radkuje
A vůbec - stejně to nemá cenu. Viz "Jako nezkousel jsem to, ale podle mne..." a "...ja to nezkousel, mne..." - peta vaří z vody ;)
=peta=
Nedalo mi to a prece jenom jsem vyzkousel ten zdrojak co jsi napsal... A efekt? po stisku enter (a mel jsem kliknuto(psal jsem text) v inputu) se formulář odeslal. Ty si to sice napsal ale asi nezkousel,ze? :-D :-D (a jinak pouzivam FF2). A i kdyby tam nebyl (input type="submit") tak se to odesle! :) (klidne si to zkus :) )
(a s tim textarea ty naumis cist? :) napsal jsem ze tam se misto odeslani udela novy radek :) a o tom ze by se neradkovala sem jeste neslysel ! :-D ).
Jinak primo odkaz ti poslu az to budu mit hotove cele :) (jenom lampy delaji celou "aplikaci" nebo stranky primo za behu. Ostatni nejdriv pekne na localhostu a pak az na netu :) )
=DeedX=
dik za podporu ;-)
Hele, tak proč to nevyřešíš takhle:
do každýho inputu, kterej může odeslat formulář stiskem ENTER (<input type="text"> etc ...) vložíš událost onkeypres(-ZNAK_ENTER-) return false;
Případně to přepíšeš do podoby fce() aby jsi neprasil kód.
To by nešlo?
=Tom=
to jsem zkoušel dat přimo do body. nefungovalo to :)
Ted mam funkcni tohle:
<form action="hm.htm" method="get" onsubmit="return false">
<input type="text" name="text" />
<input type="button" value="Submit" onclick="this.form.submit( )" />
</form>
A funguje to v IE,FF i Opere (jine jsem nezkousel :))