Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [javascript] Problem z wartością pola w formularzu, Przepisanie wartości pola w formularza podrzędnego do formularza nadrz
Quester
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.03.2002
Skąd: Łódź

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


Witam serdecznie !

Biedzę się nad problemem już kilka godzin, a na forum nie odnalazłem rozwiązania mojego problemu, więc proszę Was o pomoc:

Mam dwa pliki:

1. W pierwszym formularz nadrzędny:
  1. <form action="edit.php" method="post" id="form1" name="form1">
  2. <input type="text" name="name" id="name" disabled="disabled">
  3. ...
  4. </form>


2. W drugim pliku formularz podrzędny:
  1. <form action="java script:window.opener.document.forms.form1.elements.name.value=go.name.value" id="go" onsubmit="window.close()">
  2. <input type="text" name="name" id="name">


Planowane działanie jest następujące: W pliku 1 pojawia się formularz ze wszystkimi polami oznaczonymi jako disabled oraz link do formularza podrzędnego. W pliku 2 formularz podrzędny który po uzupełnieniu wartości przekaże je do odpowiednich pól formularza nadrzędnego. W obecnej, przytoczonej powyżej postaci działa to tylko w IE natomiast w FireFox i Opera nie chce funkcjonować.
Będę wielce zobowiązany za wskazanie rozwiązania problemu ponieważ z pewnych względów muszę zrobić taką właśnie dziwaczną kombinację.
Z góry dziękuję za każdą wskazówkę.

UPDATE:

Udało mi się samodzielnie znaleźć rozwiązanie problemu.

Poniżej podaję rozwiązanie dla tych, którym przyjdzie do głowy taka sama "głupota" jak mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Plik 1: funkcja change() w sekcji HEAD wywoływana w pliku 2 + formularz o id="form1"

  1. function change(NewValue, InputID)
  2. {
  3. var t = document.form1;
  4. t.elements[InputID].value = NewValue;
  5. }



Plik 2:
  1. <body onunload="window.opener.parent.change(document.forms.under.elements.val.value, 0);">
  2. <form action="java script:window.close()" id="form">
  3. <input type="text" name="val" id="val">
  4. </form>


Nie jestem przekonany co do poprawności tego rozwiązania biorąc pod uwagę słabą znajomość JS ale takie rozwiązanie działa zarówno pod IE jak i FF i Opera.

Ten post edytował Quester 15.02.2007, 00:10:46
Go to the top of the page
+Quote Post
gekon
post
Post #2





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Po pierwsze: jeżeli formularze mają id to nie łatwiej jest wyłuskiwać je własnie po id?

  1. window.opener.document.getElementById('form1');


Po drugie: zainteresuj się przechwytywaniem zdarzeń, bo aż strach patrzeć na ten Twój kod. Albo skorzystaj z jakiegoś frameworka dla JS, praca stanie się przyjemniejsza.

Ten post edytował gekon 16.02.2007, 17:17:37
Go to the top of the page
+Quote Post
Quester
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.03.2002
Skąd: Łódź

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


Dzięki za wskazówki. Jako początkujący bardzo doceniam, że zechciałeś naprowadzić mnie na lepszy trop (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Witam... jednak poproszę o dodatkowe wskazówki w postaci naprowadzenia mnie na właściwy tok myślenia, bo mimo tego, że szperam w sieci w poszukiwaniu sensownych materiałów dla laika, to nie mogę sobie dać rady... problem polega na tym, że moje nieprofesjonalne rozwiązanie nie działa w IE7 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Chciałbym skorzystać z JS jednorazowo, więc interesuje mnie najprostsze możliwe rozwiązanie ale bazujące na własnych funkcjach (bez framework'ów)
Pomóżcie proszę... z góry thx.

Ten post edytował Quester 21.02.2007, 21:59:10
Go to the top of the page
+Quote Post
gekon
post
Post #4





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Po ang: http://onlinetools.org/articles/unobtrusiv...t/chapter4.html.

Dodam jeszcze, że możesz zrobić funkcję, która będzie obsługiwać wysyłanie formularza i zamykanie pop-upa; w action natomiast ustaw alternatywę dla tych którzy nie mają JS (są tacy). Może wyglądać tak: User wysyła formularz, a ty odsyłasz go do strony, z której otworzył pop-upa, wstawiając to co wpisał w odpowiednie miejsce.

Ten post edytował gekon 22.02.2007, 02:25:05
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: 23.08.2025 - 15:25