Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: with(formularz){ } - jest coś takiego w JS?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Apocalyptiq
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

biggrin.gif
Ale czy przypadkiem nie ma problemów w IE z takim pobieraniem pół formularza?
lord_t
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:)
Apocalyptiq
Dzięki za info 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? smile.gif $()=$(document).ready(function(){}) z tego co czytałem.
lord_t
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 $().
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.