Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [prototype] onclick observer i upload formularza na podstawie href z <a>
Forum PHP.pl > Forum > Po stronie przeglądarki
pawelvod
mam kilka linków w postaci

<a class="search_submit" href="link/1">link1</a>
<a class="search_submit" href="link/2">link2</a>
<a class="search_submit" href="link/3" onclick="return false;">link3</a>

<form action='link'>
</form>

i chcę żeby formularz wysyłał się po kliknięciu dowolnego z linków na adres zawarty w href tego linka.

próbowałem czegoś takiego:
$$('.search_submit').each(function(event){
event.observe('click', function(event){
adres = Event.element(event).href;
formularz = $('formularz');
//nie działa pod explorerem
//alert(formularz.readAttribute('action'));
//alert(formularz.action);
formularz.action = adres;
$('formularz').submit();
return false;
});
});

i problemem jest to, że pod explorerem nie mogę dobrać się do parametru action formularza

pod mozillą wszystko jest ok oprócz tego, że mimo return false przekierowuje mnie do adresu z <a> więc musiałem dodać onclick jak w 3 linku
tommy4
Nie rozumiem, czemu ludzie zawsze piszą takie żłożone skrypty. tongue.gif

imo lepiej zrobić coś w tym stylu:

<a class="search_submit" href="link/1" onClick="goTo(this.href); return false;">link1</a>
<a class="search_submit" href="link/2" onClick="goTo(this.href); return false;">link2</a>
<a class="search_submit" href="link/3" onClick="goTo(this.href); return false;">link3</a>

<form action='link' name="gotoform">
</form>


No i gdzieś tam java script:

function goTo(address)
{
document.form.gotoform.action = address;
document.form.gotoform.submit();
}

I śluz.
prond
Spróbuj tak :
  1. <script type="text/javascript">
  2. $$('.search_submit').each(function(event){
  3. event.observe('click', function(event){
  4. var adres = Event.element(event).href;
  5. //nie działa pod explorerem
  6. //alert($('formularz').readAttribute('action'));
  7. //alert($('formularz').action);
  8. $('formularz').action = adres;
  9. $('formularz').submit();
  10. return false;
  11. });
  12. });


Cytat
Nie rozumiem, czemu ludzie zawsze piszą takie żłożone skrypty.

Budowa większych aplikacji bez framework'a jest bardzo pracochłonna.
Ponadto po co wyważać otwarte drzwi - pod prototype.js masz całe mnóstwo bibliotek, a dzięki wspólnej bazie nie ma problemów z wykorzystaniem ich wszystkich na raz (ustalone przestrzenie nazw, etc.).
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.