Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] Połączenie skryptów
Forum PHP.pl > Forum > Przedszkole
bubus_s
Witam.

Chce połączyć 2 skrypt js mają podobne zastosowanie.
Muszę łączyć bo w form może być chyba tylko jedno id.

Moje form wygląda tak:

  1. <form id="form1" class="cmxform" action="http://mojaweb.pl" method="post">


1 skrypt
[JAVASCRIPT] pobierz, plaintext
  1. $.validator.setDefaults({
  2. submitHandler: function() {
  3. alert("submitted!");
  4. }
  5. });
  6.  
  7. $.metadata.setType("attr", "validate");
  8.  
  9. $(document).ready(function() {
  10. $("#form1").validate();
  11. $("#selecttest").validate();
  12. });
[JAVASCRIPT] pobierz, plaintext


2 skrypt
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $("#rejestracja").validate({
  3. rules: {
  4.  
  5. name: {
  6. required: true,
  7. minlength: 0
  8. },
  9.  
  10.  
  11.  
  12. email: {
  13. required: true,
  14. email: true
  15. }
  16. },
  17. messages: {
  18.  
  19.  
  20.  
  21. name:{
  22. required: "Pole Imie nie może być puste",
  23. minlength: "Nie wpisaleś imienia"
  24. },
  25.  
  26.  
  27.  
  28. email:{
  29. required: "Wprowadź adres e-mail",
  30. email: "Wprowadź poprawny adres e-mail"
  31. }
  32.  
  33. },
  34. success: function(label) {
  35. label.html("&nbsp;").addClass("sprawdzony");
  36. }
  37.  
  38. });
  39. });
[JAVASCRIPT] pobierz, plaintext


Chce to połączyć w jakąś całość lub znaleźć rozwiązanie aby działało bo w form może być jedno ID.
Stosuję tylko jedno form lub kilka jeżeli będzie to poprawnie działać.
thek
Czemu więc to co w $(document).ready(function() w obu, nie umieścisz razem? winksmiley.jpg Ja nie widzę powodu by nie miało działać
bubus_s
Zrobiłem tak:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $("#rejestracja2").validate({
  3. $("#form1").validate();
  4. $("#selecttest").validate();
  5. rules: {
  6.  
  7. name: {
  8. required: true,
  9. minlength: 0
  10. },
  11.  
  12.  
  13.  
  14. email: {
  15. required: true,
  16. email: true
  17. }
  18. },
  19. messages: {
  20.  
  21.  
  22.  
  23. name:{
  24. required: "Pole Imie nie może być puste",
  25. minlength: "Nie wpisaleś imienia"
  26. },
  27.  
  28.  
  29.  
  30. email:{
  31. required: "Wprowadź adres e-mail",
  32. email: "Wprowadź poprawny adres e-mail"
  33. }
  34.  
  35. },
  36. success: function(label) {
  37. label.html("&nbsp;").addClass("sprawdzony");
  38. }
  39.  
  40. });
  41. });
[JAVASCRIPT] pobierz, plaintext


Nie działa. Nie znam się na js.

ale w form jak wpiszę rejestracja waliduje mi pola a jak wpisze form1 waliduje mi checkboxa bo tak są ustawione id.
Chce aby wpisac np calosc i walidowało mi za jednym razem wszystko.
Trzeba te 2 skrypty jakos polaczyc.
thek
To w jQuery poczytaj czym różni się wywołanie $("#formularz") od $(".formularz") i pomyśl czy to nie jest to o co Ci chodzi oraz jak to wetknąć by były jedne reguły walidacji do choćby 100 formularzy na stronie. Swoją droga więcej niż jeden form na stronie jest czasem ryzykownym działaniem, jeśli stosowane to jest nieumiejętnie.
everth
Nie kalecz. Nie rozumiem co chcesz osiągnąć - aplikować formularz walidacji do różnych id? Zobacz poniżej:
[JAVASCRIPT] pobierz, plaintext
  1. var validateRules = { //wzorzec walidacji (chyba tak ta wtyczka działa, nie chce mi się sprawdzać
  2. rules: {
  3. name: {
  4. required: true,
  5. minlength: 0
  6. },
  7. email: {
  8. required: true,
  9. email: true
  10. }
  11. // reszta tego badziewia
  12. }
  13. }
  14.  
  15. $(document).ready(function() {
  16. $("#form1,#selecttest,#rejestracja").validate(validateRules);
  17. //jakie tam jeszcze chcesz formularze pod te zasady
  18. });
[JAVASCRIPT] pobierz, plaintext
bubus_s
No dobra zadziałało.
Dzięki wielkie za pomoc.
A co ten kod to taki duży badziew?
thek
everth... zamiast wywalać tyle id do formularza, o wiele prościej zrobić podpięcie pod klasę. Co jest prostsze i elastyczniejsze w przyszłości do ponownego wykorzystania:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $("#form1,#selecttest,#rejestracja").validate(validateRules);
  3. //jakie tam jeszcze chcesz formularze pod te zasady
  4. });
[JAVASCRIPT] pobierz, plaintext
z wywołaniem i dopisywaniem za każdym razem nowego id formularza
  1. <form id="form1" class="cmxform" action="http://mojaweb.pl" method="post">
czy może:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $(".formularz").validate(validateRules);
  3. //jakie tam jeszcze chcesz formularze pod te zasady
  4. });
[JAVASCRIPT] pobierz, plaintext
z wywołaniem:
  1. <form id="form1" class="cmxform formularz" action="http://mojaweb.pl" method="post">
i pchnięcie tego do dodatkowego pliku js, który zrobi za bibliotekę funkcji własnych opartych o jQuery?
everth
@thek: to może ja mu jeszcze formularz z CSSem napiszę? Samo wrzucanie kilku formularzy na jedną stronę jest proszeniem się o kłopoty. Stosowanie podpięcia pod ID czy klasę jest sprawą drugorzędną.
thek
Everth... Ne chodzi by mu cokolwiek pisać gotowego, tylko podpowiedzieć mu elastyczniejsze rozwiązanie i być może sam oceni co mu bardziej pasuje. Zwróć uwagę o czym pisałem bo nie dałem gotowca wcale, ale posłużyłem się przeklejką Twojego kodu JS jako możliwego rozwiązania. Chodzi mi o DRY jedynie. Lepiej napisać ten kod raz by mógł odwołać się do niego kiedykolwiek, zwyczajnie dołączając plik js gdy będzie potrzebny. Jeśli na stronie w formularzu będziesz miał 15 datepickerów to też zdefiniujesz im wszystkim w skrypcie id? A co jeśli tworzysz datepickery dynamicznie i nie znasz ich id po prostu? Chodzi mi tylko o wygodę rozwiązania. Jeśli element może być wykorzystany wielokrotnie w obrębie strony lub formularza to wygodniej jest go pchnąć nie przez id, ale klasę.

I samo użycie kilku formów na jednej stronie, jeśli zrobi to nieumiejętnie, określiłem jako proszenie się o kłopoty kilka postów temu w tym temacie.
karer
[ZAL]ŻAL MI TEGO FORUM
erix
Żal mi leniów. Bo mogą się nauczyć, a nie chcą. :<
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.