-
1. Data: 2010-03-02 20:03:47
Temat: Jak submitować poprawnie formularze?
Od: "Marek" <m...@s...interia.pl>
Witam,
Jakiś czas temu poruszałem wątek na inny temat, w którym dyskusja zahaczyła
o kwestię submitowania formularzy. Padło wtedy sformułowanie, które utkwiło
mi w pamięci: jeśli w swoim kodzie znajdziesz submit(), to robisz coś źle.
Generalnie unikam submitowania z poziomu JS jeśli to się da zrobić... ale
jak właściwie dokonać tego bez submit() gdy chcemy aby zmiana w polu typu
select spowodowała przesłanie formularza?
-
2. Data: 2010-03-02 22:00:55
Temat: Re: Jak submitować poprawnie formularze?
Od: Artur Muszyński <a...@u...wytnijto.com.pl>
W dniu 2010-03-02 21:03, Marek pisze:
> Witam,
>
> Jakiś czas temu poruszałem wątek na inny temat, w którym dyskusja
> zahaczyła o kwestię submitowania formularzy. Padło wtedy sformułowanie,
> które utkwiło mi w pamięci: jeśli w swoim kodzie znajdziesz submit(), to
> robisz coś źle. Generalnie unikam submitowania z poziomu JS jeśli to się
> da zrobić... ale jak właściwie dokonać tego bez submit() gdy chcemy aby
> zmiana w polu typu select spowodowała przesłanie formularza?
Dobrze, że ci utkwiło, ale skoro ta funkcja jest, to znaczy że są
przypadki, kiedy jest przydatna :-) Alternatywnie możesz zasymulować
kliknięcie w przycisk submit przez click(), co pomoże rozpoznać akcję po
stronie serwera bez uciekania się do hidden.
artur
-
3. Data: 2010-03-03 00:53:36
Temat: Re: Jak submitować poprawnie formularze?
Od: porneL <n...@p...net>
On Tue, 02 Mar 2010 20:03:47 -0000, Marek <m...@s...interia.pl>
wrote:
> Jakiś czas temu poruszałem wątek na inny temat, w którym dyskusja
> zahaczyła o kwestię submitowania formularzy. Padło wtedy sformułowanie,
> które utkwiło mi w pamięci: jeśli w swoim kodzie znajdziesz submit(), to
> robisz coś źle. Generalnie unikam submitowania z poziomu JS jeśli to się
> da zrobić... ale jak właściwie dokonać tego bez submit() gdy chcemy aby
> zmiana w polu typu select spowodowała przesłanie formularza?
To rozwiązanie jest problematyczne dla użytkowników klawiatury - każde
wciśnięcie strzałki od razu submituje, więc przesunięcie się o 10 opcji
zrobi 10 submitów.
Niestety nie ma w tym przypadku mniej złego rozwiązania niż submit, jeśli
wymóg jest, że ma się samo wysyłać. W HTML 5 miał być atrybut autosubmit
ale wyleciał.
Jeśli dodatkowe submity nie są problemem (np. nie spowoduje to kupienia 10
produktów zamiast 10tego produktu), to coś takiego ujdzie:
<select onchange=this.form.submit()>...</select>
<noscript><input type=submit value=Zmień></noscript>
--
http://pornel.net
this.author = new Geek("porneL");
-
4. Data: 2010-03-03 07:48:05
Temat: Re: Jak submitować poprawnie formularze?
Od: "Ghost" <g...@e...pl>
Użytkownik "porneL" <n...@p...net> napisał w wiadomości
news:op.u8yvfmpuutk0y1@aimac.local...
> On Tue, 02 Mar 2010 20:03:47 -0000, Marek <m...@s...interia.pl>
> wrote:
>
>> Jakiś czas temu poruszałem wątek na inny temat, w którym dyskusja
>> zahaczyła o kwestię submitowania formularzy. Padło wtedy sformułowanie,
>> które utkwiło mi w pamięci: jeśli w swoim kodzie znajdziesz submit(), to
>> robisz coś źle. Generalnie unikam submitowania z poziomu JS jeśli to się
>> da zrobić... ale jak właściwie dokonać tego bez submit() gdy chcemy aby
>> zmiana w polu typu select spowodowała przesłanie formularza?
>
> To rozwiązanie jest problematyczne dla użytkowników klawiatury - każde
> wciśnięcie strzałki od razu submituje, więc przesunięcie się o 10 opcji
> zrobi 10 submitów.
Mozna sie bawic w jakies opoznianie.
-
5. Data: 2010-03-03 08:37:24
Temat: Re: Jak submitować poprawnie formularze?
Od: "Marek" <m...@s...interia.pl>
> To rozwiązanie jest problematyczne dla użytkowników klawiatury - każde
> wciśnięcie strzałki od razu submituje, więc przesunięcie się o 10 opcji
> zrobi 10 submitów.
Nie jest to prawdą. Enter na odpowiedniej opcji wywoła submit. Sprawdziłem
pod IE8 jak i FF.
> <select onchange=this.form.submit()>...</select>
> <noscript><input type=submit value=Zmień></noscript>
A'propos. Przypadkiem wpisałem:
<select onchange="submit()">
... i działa. Jak to możliwe ?