-
11. Data: 2010-10-16 17:16:37
Temat: Re: enter w inpucie wysyla formularz
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sat, 16 Oct 2010 19:13:36 +0200, Peter May napisał(a):
>> Ew. e.preventDefault();
>>
>> Coś powinno zadziałać ;)
>
> A po co do tego jQuery?
Żeby sobie ułatwiać życie.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
12. Data: 2010-10-16 18:17:20
Temat: Re: enter w inpucie wysyla formularz
Od: Peter May <p...@o...pl>
W dniu 2010-10-16 19:16, Borys Pogoreło pisze:
> Dnia Sat, 16 Oct 2010 19:13:36 +0200, Peter May napisał(a):
>
>>> Ew. e.preventDefault();
>>>
>>> Coś powinno zadziałać ;)
>>
>> A po co do tego jQuery?
>
> Żeby sobie ułatwiać życie.
Jaja se robisz? Do takiego prostego zadania jQuery?
--
Peter
-
13. Data: 2010-10-16 22:00:34
Temat: Re: enter w inpucie wysyla formularz
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sat, 16 Oct 2010 20:17:20 +0200, Peter May napisał(a):
>>> A po co do tego jQuery?
>>
>> Żeby sobie ułatwiać życie.
>
> Jaja se robisz? Do takiego prostego zadania jQuery?
W czymś będzie przeszkadzać? Opakowanie javascriptowego bałaganu w jQuery
znacząco ułatwia życie.
Do tego zapewne nie jest to jedyny skrypt w tym systemie.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
14. Data: 2010-10-17 09:32:37
Temat: Re: enter w inpucie wysyla formularz
Od: Peter May <p...@o...pl>
W dniu 2010-10-17 00:00, Borys Pogoreło pisze:
> Dnia Sat, 16 Oct 2010 20:17:20 +0200, Peter May napisał(a):
>
>>>> A po co do tego jQuery?
>>>
>>> Żeby sobie ułatwiać życie.
>>
>> Jaja se robisz? Do takiego prostego zadania jQuery?
>
> W czymś będzie przeszkadzać? Opakowanie javascriptowego bałaganu w jQuery
> znacząco ułatwia życie.
Samo jQuery czasem może przydać się, ale z doświadczenia wiem, że nawet
do takich zadań:
var o = document.getElementById("test");
ludzie korzystają z całych frameworków i potem wychodzi z tego bzdura w
postaci:
var o = $(#test);
"Opakowanie javascriptowego bałaganu w jQuery znacząco ułatwia życie."?
O jakim Ty bałaganie piszesz?
> Do tego zapewne nie jest to jedyny skrypt w tym systemie.
Być może, ale wątkotwórca o tym nie pisze.
--
Peter
-
15. Data: 2010-10-17 09:34:10
Temat: Re: enter w inpucie wysyla formularz
Od: Peter May <p...@o...pl>
W dniu 2010-10-17 11:32, Peter May pisze:
> var o = $(#test);
No tak to jest, jak rzadko korzysta się z framework-ów :P
var o = $("#test");
--
Peter
-
16. Data: 2010-10-17 11:21:00
Temat: Re: enter w inpucie wysyla formularz
Od: gienek <n...@c...pl>
Dnia Sat, 16 Oct 2010 19:06:48 +0200, Borys Pogoreło napisał(a):
> Dnia Sat, 16 Oct 2010 09:16:08 +0000 (UTC), gienek napisał(a):
>> Cała zabawa polega teraz na tym, żeby po kliknięciu entera skrypt nie
>> próbował wysłać formularza tylko np. dal fokusa na nastepnego inputa.
>> niestety ten kod (właściwie kawałek) tego nie robi.
> Tak na szybko i z głowy pod jQuery:
>
> $("select").keypress(function(e){
> if (e.which == 13) return false;
> });
> Ew. e.preventDefault();
> Coś powinno zadziałać ;)
Coś zadziałało, ale nie tak jakbym chciał. Niestety moja JS jest tak, że
dokładnie nie wiem co zadziałało :>
Jak już wspomniałem mam formularz
<form onsubmit="sprawdz(this); return false;" ....
w tym formularzu mam miedzy innymi pole z podpowiedzią i jak klikne myszą
na podpowiedż jest ok jak wybiorę z klawiatury i dam enter keyCode == 13
wówczas próbije wysłać mi od razu formularz, a to błąd. Próbowałem różne
rzeczy m.in. return false, ale było to o kant dupy rozbić.
Poniże kawałek kodu ze skryptu do pokazuwania/chowania podpowiedzi
fragment odnosi się właśnie do zdarzenia wciśnięcia entera...
else if (keyCode == 13) {document.getElementById("pole").value = wartosc;
schowajliste(nr)}
funkcja schowajliste ma ukryc podpowiedz...
function schowajliste(nr) {
try { document.getElementById("lista").style.display = "none"; }
catch(e){} }
czyni tak, ale poprawnie tylko jak klinie myszką, jak enter to wysyła
forma.
I teraz tak próbowałem z return false, próbowałem z preventDefault i
wszystko kiszka dopiero alert pomógł :>
function schowajliste(nr) {
try {
document.getElementById("lista").style.display = "none";
document.getElementById("kolejnepole").focus();
alert('Przerwałem :)');
}
catch(e){} }
Moze mi ktoś po ludzku wytłumaczyć dlaczego tak jest ? :)
-
17. Data: 2010-10-17 16:18:22
Temat: Re: enter w inpucie wysyla formularz
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sun, 17 Oct 2010 11:32:37 +0200, Peter May napisał(a):
> "Opakowanie javascriptowego bałaganu w jQuery znacząco ułatwia życie."?
> O jakim Ty bałaganie piszesz?
Choćby tym:
document.getElementById("mybutton").onkeypress = function(e)
{
if(!e) e = window.event;
var key = (e.type == 'keypress') ? e.charCode || e.keyCode || e.which
: e.which || e.keyCode;
if(key == 13){ return false; }
}
jQuery daje Ci elegancki obiekt. Nie musisz się męczyć z wykrywaniem N
przeglądarek, obługą N+1 wyjątków i N! nazw zmiennych - całą czarną robotę
już ktoś za Ciebie odwalił.
Ale może to lubisz ;)
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
18. Data: 2010-10-17 16:19:28
Temat: Re: enter w inpucie wysyla formularz
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sun, 17 Oct 2010 11:21:00 +0000 (UTC), gienek napisał(a):
> Moze mi ktoś po ludzku wytłumaczyć dlaczego tak jest ? :)
Wystaw gdzieś całość, bo problem może być gdziekolwiek.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
19. Data: 2010-10-17 19:45:51
Temat: Re: enter w inpucie wysyla formularz
Od: Peter May <p...@o...pl>
W dniu 2010-10-17 18:18, Borys Pogoreło pisze:
> Dnia Sun, 17 Oct 2010 11:32:37 +0200, Peter May napisał(a):
>
>> "Opakowanie javascriptowego bałaganu w jQuery znacząco ułatwia życie."?
>> O jakim Ty bałaganie piszesz?
>
> Choćby tym:
>
> document.getElementById("mybutton").onkeypress = function(e)
> {
> if(!e) e = window.event;
> var key = (e.type == 'keypress') ? e.charCode || e.keyCode || e.which
> : e.which || e.keyCode;
> if(key == 13){ return false; }
> }
To nie jest bałagan tylko normalny kod JavaScript.
> jQuery daje Ci elegancki obiekt. Nie musisz się męczyć z wykrywaniem N
> przeglądarek, obługą N+1 wyjątków i N! nazw zmiennych - całą czarną robotę
> już ktoś za Ciebie odwalił.
Nie przesadzałbym z tymi dobrodziejstwami. Też mają swoje błędy. A i z
wydajnością niekiedy bywa kiepsko.
> Ale może to lubisz ;)
To nie kwestia lubienia czy nie, ale wykorzystywanie mega frameworków do
prostych zadań, które da się zrobić w JS bezpośrednio, nie ma sensu.
--
Peter
-
20. Data: 2010-10-17 19:56:56
Temat: Re: enter w inpucie wysyla formularz
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Sun, 17 Oct 2010 21:45:51 +0200, Peter May napisał(a):
>> document.getElementById("mybutton").onkeypress = function(e)
>> {
>> if(!e) e = window.event;
>> var key = (e.type == 'keypress') ? e.charCode || e.keyCode || e.which
>>: e.which || e.keyCode;
>> if(key == 13){ return false; }
>> }
>
> To nie jest bałagan tylko normalny kod JavaScript.
No właśnie. I to jest straszne, że przez ten bałagan za normalność uznaje
się np. trzy różne zmienne przechowujące kod zwróconego klawisza, które
jeszcze trzeba przetestować osobnym warunkiem.
Nie mówiąc już o manipulacjach DOM, które zapisane w "gołym" JS często się
nie mieszczą na ekranie. I po co to? Dla ułamka milisekundy, której
uzytkownik i tak nie zauważy? Spróbuj to później debugować.
>> jQuery daje Ci elegancki obiekt. Nie musisz się męczyć z wykrywaniem N
>> przeglądarek, obługą N+1 wyjątków i N! nazw zmiennych - całą czarną robotę
>> już ktoś za Ciebie odwalił.
>
> Nie przesadzałbym z tymi dobrodziejstwami. Też mają swoje błędy. A i z
> wydajnością niekiedy bywa kiepsko.
Błędy są poprawiane i nie musisz robić doktoratu z różnic między
implementacjami JS w różnych przeglądarkach.
Spróbuj zrobić uniwersalne "bąbelkowanie" eventów bez biblioteki typu
jQuery - osiwiejesz.
Co do wydajności - z tym jest dobrze i coraz lepiej. Nie demonizowałbym
tego. Dobrze napisany kod jQuery będzie szybki.
>> Ale może to lubisz ;)
>
> To nie kwestia lubienia czy nie, ale wykorzystywanie mega frameworków do
> prostych zadań, które da się zrobić w JS bezpośrednio, nie ma sensu.
Mega frameworków? Nie przesadzaj. Skompresowany plik jQuery 1.4.3 ma 26KB
i może być serwowany przez CDN. Więcej z reguły ma byle plik HTML.
Ile będzie miał plik JS w którym upchniesz wszystkie te "proste" zadania,
które prędzej czy później będziesz musiał opakować w serię funkcji i
zaczniesz powielać funkcjonalność frameworka?
--
Borys Pogoreło
borys(#)leszno,edu,pl