-
31. Data: 2009-01-04 16:43:02
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: porneL <n...@p...net>
On Sun, 04 Jan 2009 15:10:39 -0000, Marek <m...@s...interia.pl> wrote:
>> Przy okazji, nie masz tego w jednym szablonie jakoś? Albo w kilku? Nie
>> mów, że każdy form w osobnym pliku siedzi :/
>
> Juz Pornel pytał się o to. Szablon nie dotyczy formularzy bo każdy z
> nich jest zupełnie inny (co innego ma w action). Ponadto zmiana dotyczy
> również skryptów JS modyfikujących działanie pól formularza (zmiana
> action + submitowanie). Każda strona ma inne pola i z oczywistych
> względów wymaga innego zestawu poleceń JS. To kupa pracy. :-(
Na przyszłość (bo jak to stary system to pewnie nikt za przeróbkę nie zapłaci)
polecam formularze generować programowo.
Najprostszy sposób to wstaw_inputa('imie'); wstaw_checkbox_zależny_od('imie');
wstaw_submita('akcja_x');, etc.
Można się rozpędzić i całe formularze budować deklaratywnie:
http://framework.zend.com/manual/en/zend.form.quicks
tart.html
--
http://sblam.com
this.author = new Geek("porneL");
-
32. Data: 2009-01-04 16:49:58
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: "Marek" <m...@s...interia.pl>
> <input type="text"> <!-- klepnij enter w tym inpucie, to wyślesz
> formularz -->
> <input style="display:none" type="submit">
No i pojawił się problem :-(
Mam kilka buttonów w postaci:
<input type="button" onClick="submitForm('bannersForm','addNew')"
value="zapisz nowy" class="button buttonSaveNew" id="saveNew">
(to jeden z nich)
No i w takim przypadku pod IE 7 przestaje działać:
<input style="display:none" type="submit">
Tak jakby go nie było.
-
33. Data: 2009-01-04 17:05:45
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: porneL <n...@p...net>
On Sun, 04 Jan 2009 16:49:58 -0000, Marek <m...@s...interia.pl> wrote:
> No i pojawił się problem :-(
>
> Mam kilka buttonów w postaci:
> <input type="button" onClick="submitForm('bannersForm','addNew')"
> value="zapisz nowy" class="button buttonSaveNew" id="saveNew">
> (to jeden z nich)
<input type=submit onclick="changeFormButDontSubmit();">
--
this.author = new Geek("porneL");
-
34. Data: 2009-01-04 17:29:17
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: "Marek" <m...@s...interia.pl>
> Najprostszy sposób to wstaw_inputa('imie');
> wstaw_checkbox_zależny_od('imie'); wstaw_submita('akcja_x');, etc.
>
> Można się rozpędzić i całe formularze budować deklaratywnie:
> http://framework.zend.com/manual/en/zend.form.quicks
tart.html
Niedawno pewnej znanej firmie pracującej nad dużym projektem dla banku
opłaciło się mnie zatrudnić na 2 tygodnie czasu w charakterze ratownika
grafiki ponieważ przestali panować nad layoutem oprogramowania pisanego w
środowisku .NET zgodnie z tą koncepcją. Okazało się, że kontrolki wstawione
w postaci symbolicznej w formatkę zachowywały się w sposób nieprzewidywalny.
Nie było widać, że np. suma ich szerokości (zależnej od opisu np.. buttona)
przekraczała wyznaczony obszar i zawijały się gdy ktoś literkę dostawił.
Innym razem nie sposób było zauważyć, że jakiś styl psuł w konkretnym
formularzu kontrolkę, która w innym wygladała OK. 14 dni z weekendami po
12h-16h w pracy spędzałem...
Tego typu doświadczenia (również wcześniejsze) zaważyły na sposobie
realizacji wszelkich projektów jakie sam realizuję. Zawsze w postaci
wizualnej to się odbywa nawet jeśli wynika z tego więcej pracy czasem. Np. w
publicznej części CMS'a formularze faktycznie generowane są automatycznie
lecz na podstawie formatek HTML'owych z całym układem formularza, wszystkimi
stylami itp, z których moduł programowy wycina sobie z tego kawałek i
umieszcza w treści. Buttony itp. widoczne są zawsze w komplecie i w
docelowej postaci. Wtedy nie ma takich dramatów. A do tego narzędzia
znacznie poprawiły swoją jakość co wiele czynności automatyzuje w nowych
(niestety) projektach.
-
35. Data: 2009-01-04 17:35:29
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: "Marek" <m...@s...interia.pl>
> <input type=submit onclick="changeFormButDontSubmit();">
Rozwiń wątek - nie wiem co chiałeś przekazać. Pod IE ten button nie wykonuje
żadnej akcji ani w onclick i ani zwykłej HTML'owej jeśli w formularzu jest
jakikolwiek inny nie-submitowy button. Pewnie gdybym go kliknął myszą to
zadziałaby ... lecz jest ukryty.
-
36. Data: 2009-01-04 18:05:19
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: "Marek" <m...@s...interia.pl>
Mam kolejny kłopot z <intut type="button">. Pod IE 7 styl:
input.button {
font-family: Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #378AAA;
font-size: 10px;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 0px;
text-align:left;
padding-right: 0px;
margin-top: 5px;
margin-right: 5px;
margin-bottom: 0px;
margin-left: 0px;
vertical-align: top;
float: left;
cursor: pointer;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 3px;
border-left-width: 0px;
border-top-style: none;
border-right-style: none;
border-bottom-style: hidden;
border-left-style: none;
border-bottom-color: transparent;
line-height: 100%;
letter-spacing: 0px;
}
nie jest w stanie zabić prawego paddingu, który na oko wynosi ze 20 pikseli.
Odstępy między buttonami stają się kobylaste zamiast wynosiż żądane 5px. Czy
wiecie jak się tego pozbyć?
-
37. Data: 2009-01-04 19:37:41
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: porneL <n...@p...net>
On Sun, 04 Jan 2009 17:35:29 -0000, Marek <m...@s...interia.pl> wrote:
>> <input type=submit onclick="changeFormButDontSubmit();">
>
> Rozwiń wątek - nie wiem co chiałeś przekazać. Pod IE ten button nie
> wykonuje żadnej akcji ani w onclick i ani zwykłej HTML'owej jeśli w
> formularzu jest jakikolwiek inny nie-submitowy button. Pewnie gdybym go
> kliknął myszą to zadziałaby ... lecz jest ukryty.
Jeśli chesz, żeby coś stało się po wciśnięciu konkretnego przycisku, a potem wysłał
formularz, to zamiast:
<input type=button onclick="coś(); form.submit()">
lepiej jest użyć:
<input type=submit onclick="coś();">
Jeśli chcesz, żeby coś się wykonywało zawsze przed wysłaniem formularza (nawet jak
wysłany zostanie enterem), to zamiast:
<input type=submit onclick="coś();">
lepiej jest użyć:
<form onsubmit="coś()">
Na marginesie dodam, że w obu przypadkach masz możliwość czasem nie wysyłać
formularza (np. jak odkryjesz, że jest źle wypełniony) zwracając false z
onclick/onsubmit, np.
<form onsubmit="return formularzMożeByćWysłany()">
--
this.author = new Geek("porneL");
-
38. Data: 2009-01-04 19:39:38
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: porneL <n...@p...net>
On Sun, 04 Jan 2009 18:05:19 -0000, Marek <m...@s...interia.pl> wrote:
> Mam kolejny kłopot z <intut type="button">. Pod IE 7 styl:
>
> input.button {
[ciach]
> }
W głowie mi się kręci od tak rozdrobionych właściwości. Stosuj skrócony zapis typu
padding:0;
--
http://sblam.com
this.author = new Geek("porneL");
-
39. Data: 2009-01-04 19:41:56
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: porneL <n...@p...net>
On Sun, 04 Jan 2009 17:29:17 -0000, Marek <m...@s...interia.pl> wrote:
> Niedawno pewnej znanej firmie pracującej nad dużym projektem dla banku
> opłaciło się mnie zatrudnić na 2 tygodnie czasu w charakterze ratownika
> grafiki ponieważ przestali panować nad layoutem oprogramowania pisanego
> w środowisku .NET zgodnie z tą koncepcją.
.Net WebForms (szczególnie w połączeniu z Design View w VS) to takie dno, że w ogóle
się nie dziwię.
Ja mówię o normalnych przypadkach, gdzie kod HTML+CSS ma odrobinę sensu i całość nie
ugina się od niepotrzebnych hacków w JS.
--
this.author = new Geek("porneL");
-
40. Data: 2009-01-04 20:22:44
Temat: Re: JS - jak zrobić poprawnie submit formularza pod FF?
Od: "Marek" <m...@s...interia.pl>
> Jeśli chesz, żeby coś stało się po wciśnięciu konkretnego przycisku, a
> potem wysłał formularz, to zamiast:
>
> <input type=button onclick="coś(); form.submit()">
>
> lepiej jest użyć:
>
> <input type=submit onclick="coś();">
No dobrze... jednakże jeśli mam kilka submitów, to jak wyznaczyć domyślny?
Przypomnę, że chodzi w tym wątku o to aby enterem na dowolnym polu tekstowym
submitować formularz. Właśnie z tego względu mam jeden (tak jak Maciej
radził)
<input type=submit style="display:none">
I to zadzałało aż do momentu dostawienia innych przycisków.
A resztę zrobiłem jako:
<input type=button...
i też nie pomogło. Sam już nie wiem jak bez JS zrobić domyślny button.
Zastanawiam się czy zastosowanie DIVa zamiast buttonów pomogłoby. W końcu
jemu też onclick przypisać można. Wtedy będzie tylko jeden "prawdziwy"
button (ten ukryty) i przeglądarki powinny być wrażliwe na entera.
> Jeśli chcesz, żeby coś się wykonywało zawsze przed wysłaniem formularza
> (nawet jak wysłany zostanie enterem), to zamiast:
>
> <input type=submit onclick="coś();">
>
> lepiej jest użyć:
>
> <form onsubmit="coś()">
Niezupełnie. Wtedy musiałbym jakoś (nie zastanawiałem się nawet jak) zbadać
w JS który z przycisków submituje formularz aby wykonać odpowiednią akcję (w
JS oczywiście). Gdy mam onclick w buttonie, to w ciemno wołam procedurę
robiącą to co ma dany button zrobić przed wysłaniem formularza.
> Na marginesie dodam, że w obu przypadkach masz możliwość czasem nie
> wysyłać formularza (np. jak odkryjesz, że jest źle wypełniony) zwracając
> false z onclick/onsubmit, np.
> <form onsubmit="return formularzMożeByćWysłany()">
tak, to wiem - całkiem użyteczne gdy sprawdzam poprawność danych w
formularzu. Rzadko to robię po stronie JS jednak. Za duża zawodność jest
tego mechanizmu.