🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
11 messages
11 total messages Started by rafian Tue, 21 Jul 2009 18:12
Własne atrybuty elementów DOM - problem z walidatorem W3
#49182
Author: rafian
Date: Tue, 21 Jul 2009 18:12
32 lines
2439 bytes
Witam.
Mam pewien problem, do walidacji formularzy stworzyłem sobie funkcję
(działa bardzo dobrze), mniej więcej taką:
SprawdzWysylke(obj_form){
var form=obj_form.id;
for(el in document.forms[form].elements){
...
var typ=document.forms[form].elements[el].type;
...
var obw=document.forms[form].elements[el].getAttribute('o');
//jeśli obw==1 - pole formularza jest obowiazkowe
if(obw==1){
  //tu sa wykonywane rozne czynnosci w zaleznosci od nazwy pola itp

}
}

Tak jak pisałem na wstępie sama funkcja działa, tak jak sobie tego
życzę.
Jednak problem mam z walidacją kodu strony walidatorem w3, wszystkie
strony mam zgodne w 100% z XHTML

W HTML mam tak stworzone obiekty: <input type="text" value="" o="1"
id="email" name="email"/>
walidator pokazuje mi błąd, że nie mogę użyć atrybutu o

I teraz pytanie co z tym zrobić? Jeśli nie mogę użyć własnych
atrybutów, to czy ktoś ma jakiś pomysł jak zrobić taką w miarę
uniwersalną walidację formularzy, taką aby osoba tworząca tylko kod
HTML z tego poziomu była w stanie określić, czy pole ma być
obowiązkowe, czy też nie, oraz aby było to prościutkie i intuicyjne w
użyciu.
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49183
Author: kubar3k
Date: Tue, 21 Jul 2009 18:23
18 lines
1812 bytes
Ja bym Ci radził nie przejmować się walidatorem, w takich sprawach,
dopóki strona działa poprawnie ;)
Ale jak już chcesz być zgodny z walidatorem, to istnieje proste
rozwiązanie. Możesz przechowywać ten status obowiązkowy w globalnej
tablicy asocjacyjnej, gdzie kluczami będą atrybuty id elementów, a
wartościami - wartości atrybutu o tychże elementów np.
var obw = {
  email: 1,
  pass: 1,
  user: 0
}

I w pętli sprawdzasz:
if (obw[el.id] == 1) {
  ...
}

Pozdrawiam
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49184
Author: porneL
Date: Tue, 21 Jul 2009 18:44
15 lines
1510 bytes
On Tue, 21 Jul 2009 19:12:22 +0100, rafian <ronin.rs@gmail.com> wrote:

> I teraz pytanie co z tym zrobić? Jeśli nie mogę użyć własnych
> atrybutów, to czy ktoś ma jakiś pomysł jak zrobić taką w miarę
> uniwersalną walidację formularzy, taką aby osoba tworząca tylko kod
> HTML z tego poziomu była w stanie określić, czy pole ma być
> obowiązkowe, czy też nie, oraz aby było to prościutkie i intuicyjne w
> użyciu.

Możesz ukrywać własne dane w class albo użyć HTML5, który pozwala na  
dowolne atrybuty z prefiksem data- (data-obw="1").

-- 
http://pornel.net
this.author = new Geek("porneL");
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49185
Author: marcoos
Date: Tue, 21 Jul 2009 19:52
23 lines
2280 bytes
On 21 Lip, 20:44, porneL <niu...@pornel.net> wrote:
> > I teraz pytanie co z tym zrobić? Jeśli nie mogę użyć własnych
> > atrybutów, to czy ktoś ma jakiś pomysł jak zrobić taką w miarę
> > uniwersalną walidację formularzy, taką aby osoba tworząca tylko kod
> > HTML z tego poziomu była w stanie określić, czy pole ma być
> > obowiązkowe, czy też nie, oraz aby było to prościutkie i intuicyjne w
> > użyciu.
>
> Możesz ukrywać własne dane w class albo użyć HTML5, który pozwala na  
> dowolne atrybuty z prefiksem data- (data-obw="1").

Nie mówiąc już o tym, że w HTML 5 istnieje między innymi atrybut
required,
oznaczający, że pole jest wymagane:

<input type="text" name="whatever" required>

Na razie obsługuje go tylko Opera, ale w pozostałych przeglądarkach
można to
sobie oskryptować.

--
marcoos.com
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49186
Author: NKAB -
Date: Wed, 22 Jul 2009 06:48
58 lines
2670 bytes
rafian <ronin.rs@gmail.com> napisał(a): 

> Witam.
> Mam pewien problem, do walidacji formularzy stworzy=B3em sobie funkcj=EA
> (dzia=B3a bardzo dobrze), mniej wi=EAcej tak=B1:
> SprawdzWysylke(obj_form){
> var form=3Dobj_form.id;
> for(el in document.forms[form].elements){
> ....
> var typ=3Ddocument.forms[form].elements[el].type;
> ....
> var obw=3Ddocument.forms[form].elements[el].getAttribute('o');
> //je=B6li obw=3D=3D1 - pole formularza jest obowiazkowe
> if(obw=3D=3D1){
>   //tu sa wykonywane rozne czynnosci w zaleznosci od nazwy pola itp
> 
> }
> }
> 
> Tak jak pisa=B3em na wst=EApie sama funkcja dzia=B3a, tak jak sobie tego
> =BFycz=EA.
> Jednak problem mam z walidacj=B1 kodu strony walidatorem w3, wszystkie
> strony mam zgodne w 100% z XHTML
> 
> W HTML mam tak stworzone obiekty: <input type=3D"text" value=3D"" o=3D"1"
> id=3D"email" name=3D"email"/>
> walidator pokazuje mi b=B3=B1d, =BFe nie mog=EA u=BFy=E6 atrybutu o
> 
> I teraz pytanie co z tym zrobi=E6? Je=B6li nie mog=EA u=BFy=E6 w=B3asnych
> atrybut=F3w, to czy kto=B6 ma jaki=B6 pomys=B3 jak zrobi=E6 tak=B1 w miar=
> =EA
> uniwersaln=B1 walidacj=EA formularzy, tak=B1 aby osoba tworz=B1ca tylko kod
> HTML z tego poziomu by=B3a w stanie okre=B6li=E6, czy pole ma by=E6
> obowi=B1zkowe, czy te=BF nie, oraz aby by=B3o to pro=B6ciutkie i intuicyjne=
>  w
> u=BFyciu.


Po co tak wydziwiać. Zawsze miałem awersje do robienia
niepotrzebnych klas, obiektów itp duperel zajmujących tylko pamięć
i komplikujących kod.

<input id="inp1" onBlur="MyFun(this.value)">

<script>
function MyFun(x)
{
 if(x.length==0 || x.substring(0,1)==' ')
  alert('aaa...');
 else
  alert('bbb...');
}

Andrzej.


-- 
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49187
Author: William Bonawentura
Date: Wed, 22 Jul 2009 07:17
7 lines
1384 bytes
Musisz okreslić jaki jest twój cel np.
1) Utrzymać statyczność kodu js i konfigurować walidatory przez html - 
wprowadzić dodatkowe atrybuty do znaczników
1.1) Nie przejmować się walidatorem
1.2) Zastosować dla tych atrybutów własną przestrzeń nazw i dodac DTD 
pozwalające na nie
2) Przenieść konfigurację do js
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49188
Author: Tomasz Muszyński
Date: Wed, 22 Jul 2009 17:10
10 lines
1613 bytes
W dniu 22-07-09 9:17, William Bonawentura pisze:
> Musisz okreslić jaki jest twój cel np.
> 1) Utrzymać statyczność kodu js i konfigurować walidatory przez html -
> wprowadzić dodatkowe atrybuty do znaczników
> 1.1) Nie przejmować się walidatorem

Albo wybiera się z jakiegoś powodu XHTML i stosuje się do jego wymogów, 
albo wybiera się HTML, a nie robi "niewiadomoco".

tm
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49189
Author: szomiz
Date: Wed, 22 Jul 2009 21:32
18 lines
1939 bytes
Użytkownik "rafian" <ronin.rs@gmail.com> napisał w wiadomości 
news:e9a50f5b-84fa-42ca-a3f1-5cd1ef67d2dd@y7g2000yqa.googlegroups.com...


> I teraz pytanie co z tym zrobić? Jeśli nie mogę użyć własnych
> atrybutów, to czy ktoś ma jakiś pomysł jak zrobić taką w miarę
> uniwersalną walidację formularzy, taką aby osoba tworząca tylko kod
> HTML z tego poziomu była w stanie określić, czy pole ma być
> obowiązkowe, czy też nie, oraz aby było to prościutkie i intuicyjne w
> użyciu.

<input type="hidden" value="..." .../> dostepny przez nextSibling ?

A wogole, co to za pomysl z walidowaniem po stronie klienta. Zwlaszcza w 
czasach ajaxow, JSON'ow, albo czegos innego, czego istota rowniez zawiera 
sie w 15-liniach kodu, ale nie pisza o tym ksiazek?

sz. 
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49190
Author: rafian
Date: Sun, 26 Jul 2009 13:49
34 lines
3324 bytes
On 22 Lip, 23:32, "szomiz" <szo...@kocha.dostawac.reklamy.przez.net>
wrote:
> Użytkownik "rafian" <ronin...@gmail.com> napisał w wiadomościnews:e9a50f5b-84fa-42ca-a3f1-5cd1ef67d2dd@y7g2000yqa.googlegroups.com...
>
> > I teraz pytanie co z tym zrobić? Jeśli nie mogę użyć własnych
> > atrybutów, to czy ktoś ma jakiś pomysł jak zrobić taką w miarę
> > uniwersalną walidację formularzy, taką aby osoba tworząca tylko kod
> > HTML z tego poziomu była w stanie określić, czy pole ma być
> > obowiązkowe, czy też nie, oraz aby było to prościutkie i intuicyjne w
> > użyciu.
>
> <input type="hidden" value="..." .../> dostepny przez nextSibling ?
>
> A wogole, co to za pomysl z walidowaniem po stronie klienta. Zwlaszcza w
> czasach ajaxow, JSON'ow, albo czegos innego, czego istota rowniez zawiera
> sie w 15-liniach kodu, ale nie pisza o tym ksiazek?
>
Nie wiem czy się pisze czy nie, ostatnio nie przeczytałem żadnej
książki niestety, temat jednak nie dotyczy Twojego pytania, ale
chętnie odpowiem.
Prawdziwa walidacja kodu następuje faktycznie po wysłaniu formularzu,
formularz jest walidowany przez odpowiedni skrypt php.
Ta część w js mogła by nie istnieć, potrzeba jest w zasadzie do 2
rzeczy, wymienię wg istotności.
1. Każde przesłanie formularza na serwer to dla mnie koszt: transfer,
czas procesora, zapytania do bazy danych, połączenie. Każda redukcja
choćby o niewielki ułamek, to dla mnie materialny zysk, więc mam o co
walczyć.
Oczywiście sam serwer musi potem sprawdzić czy wszystko ok, bo
przecież wiadomo, że walidacja w js to nie jest żadne zabezpieczenie
przed tego typu sytuacjami.
2. Ułatwienie wprowadzania danych - klient od razu wie, że coś ma nie
tak, bez oczekiwania, więc chętniej poprawi błąd, niż wyłączy
przeglądarkę ;-)
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49191
Author: szomiz
Date: Sun, 26 Jul 2009 18:54
13 lines
1657 bytes
Użytkownik "rafian" <ronin.rs@gmail.com> napisał w wiadomości 
news:6ccd3dfd-fd3d-475d-8314-602b8c58691d@v20g2000yqm.googlegroups.com...

[wielkie ciach]

Ble ble ble. Jak juz na prawde musisz prewalidowac i naprawde nie wiesz jak 
to zrobic bez przeladowania strony, to bys sie choc skupil nad sugestia 
stukturalnych hiddenow.

A jak boli transfer, to i w ID'ach mozna potrzebne informacje przemycic. 
Jeszcze inaczej tez mozna.

sz. 
Re: Własne atrybuty elementów DOM - problem z walidatorem W3
#49192
Author: rafian
Date: Mon, 27 Jul 2009 06:24
31 lines
2821 bytes
On 26 Lip, 20:54, "szomiz" <szo...@kocha.dostawac.reklamy.przez.net>
wrote:
> Użytkownik "rafian" <ronin...@gmail.com> napisał w wiadomościnews:6ccd3dfd-fd3d-475d-8314-602b8c58691d@v20g2000yqm.googlegroups.com...
>
> [wielkie ciach]
>
> Ble ble ble. Jak juz na prawde musisz prewalidowac i naprawde nie wiesz jak
> to zrobic bez przeladowania strony, to bys sie choc skupil nad sugestia
> stukturalnych hiddenow.
>
> A jak boli transfer, to i w ID'ach mozna potrzebne informacje przemycic.
> Jeszcze inaczej tez mozna.
>
> sz.

Drogi kolego, bez publikacji tego posta rozważałem używanie pól
ukrytych i jeszcze kilku innych rozwiązań, mój post nie ma za zadanie
prosić forumowiczów o przedstawienie możliwych rozwiązań, tylko
wygodnych i przez nich sprawdzonych, chodzi tu po prostu o praktyczne
rozwiązania jakich używają inni, moje z atrybutem, jest świetne, ale
niestety kod musi mi się walidować w 100%
Mam sporo czasu na rozwiązanie tego, dlatego czekam na różne przykłady/
propozycje.
Swój ciekawy podałeś, ja stosowałem coś takiego, ale odwoływałem się
nie przez sąsiada, tylko id miałem takie jak pola, które sprawdzałem +
w nazwie np. _wal
Dodatkowo, ważne jest to co napisałem na początku system buduję dla
osoby piszącej kod HTML, nie posiadającej żadnej wiedzy na temat
programowania.
Gdybym pisał bibliotekę dla programisty, problem byłby zupełnie
inaczej przedstawiony.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads