Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> with(formularz){ } - jest coś takiego w JS?, niby działa :)
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Na kursie webmade (http://webmade.org/porady/walidacja-danych-formularz-javascript-js.php ) ujrzałem taki fragment kodu:
Kod
with(document.forms[0]){
  if (imie.value == "")  bledy += "Nie podałeś imienia. \n";
  if (nazwisko.value == "")    bledy += "Nie podałeś nazwiska.\n";
if (komentarz.value == "") bledy += "Nie napisałeś treści";
  if (bledy != "")  error(bledy);
}

No i działa - pobiera to dany formularz i na nim wykonuje operacje. Ale nie mogę o tej funkcji nic w necie znaleźć - jest ona w ogóle kompatybilna ze wszystkimi przeglądarkami, np. IE (mi na FF działa)? Spotkał się ktoś kiedyś z nią, używał jej?

Jak najlepiej dostawać się do elementów formularza - używam jQuery, ale tam, żeby dostać się do jakiegoś elementu formularza, trzeba wpisać coś takiego (jeżeli działamy na formularzu - this=naszformularz):
Kod
$(this).find("input[@name='login']")

A w czystym js wystarczy:
Kod
this.login

(IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Ale czy przypadkiem nie ma problemów w IE z takim pobieraniem pół formularza?

Ten post edytował Apocalyptiq 22.11.2008, 11:07:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
lord_t
post
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

Ostrzeżenie: (0%)
-----


https://developer.mozilla.org/en/Core_JavaS...#with_Statement

With to element języka. Ale lepiej przypisywać 'dłuższą ścieżkę' typu document.forms[0] do zmiennej np. var f

Co do jQ., to nikt Ci nie broni używać razem z nim czystego js. Selektor jQ. tworzy obiekt jQuery, który ma swoje metody. Jeśli strona jest prosta to nie warto używać jQ. (chyba, że ma się chwilowo zapatrywania lenia;) ). Jeśli będziesz mieć zagmatwaną strukturę drzewa to wtedy jQuery jest idealne:)
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Dzięki za info (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

A jak już poruszyliśmy temat jQuery, to jak powinno się tam deklarować funkcje? normalnie:
Kod
function costam(argument){
$.ajax({....
}

Czy tak (np. na stronie jQuery, w źródle, coś takiego jest):
Kod
$(function costam(argument){
$.ajax({....
});

Przecież chyba nie ma znaczenia, czy zadeklarujemy funkcje zanim się właduje struktura DOM? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) $()=$(document).ready(function(){}) z tego co czytałem.

Ten post edytował Apocalyptiq 22.11.2008, 15:03:24
Go to the top of the page
+Quote Post
lord_t
post
Post #4





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

Ostrzeżenie: (0%)
-----


Zwykłe funkcje deklarujemy zwyczajnie.
Funkcje które mają działać jako metody obiektu jQuery (głownie pluginy), trochę inaczej (jak? szukać na str. jQ.).

Funkcji zdefiniowanej w $() nie użyjesz* w normalnym kodzie. Nie ma ona nazwy, więc się nie da do niej odwołać (Jeśli ktoś wie jak to proszę o info;) ). Ta konstrukcja ze słowem function służy tylko do tego, żeby podać jakiś kod do już gotowej funkcji (tu: do ready).


----
*) Chyba, że napiszesz jakąś normalną funkcję, a później podasz jej wywołanie(?) do $().

Ten post edytował lord_t 22.11.2008, 15:59:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 07:14