Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] jQuery Ajax a submit
Forum PHP.pl > Forum > Przedszkole
lukasamd
Witam,
zrobiłem sobie div'a, w nim formularz z kilkoma polami typu text, oraz input button do wysyłania tego poprzez ajax jquery.
Dane trafiają do innego pliku, wykonuje on operację na bazie i zwraca nowy formularz z takimi samymi inputami, ale innymi ich opisami.

Niestety, pierwszy raz jest ok, ale później już naciskanie buttonu nie daje żadnego rezultatu.

Dla testu przeniosłem go poza wysyłany div (tak samo jak form), no i w takim ustawieniu "śmiga" bezproblemowo.
Ciekawość jednak nie pozwala z tym żyć - czemu nie działało gdy button był wewnątrz wysyłango diva?
Na 100% w odpowiedzi szedł identyczny input button, bo kod został po prostu skopiowany.
nospor
a gdzie podpinasz pod button akcje wysylki?
Pewnie odbierając dane dostajesz button juz bez tego podpięcia smile.gif

POczytaj o LIVE w jquery
lukasamd
Input z którego idzie akcja:

Kod
<input id="testsumbit" type="button" name="wyslij" value="Wyślij odpowiedź" class="button test-submit" />


akcja jest wywoływana tym:

Kod
$("#testsumbit").click(function()


gdzie cały kod javascript jest w zewnętrznym pliku i załączany przy ładowaniu strony, nie jest przekazywany w ajaxie, więc tego problemu nie ma (o ile dobrze Cię zrozumiałem).
nospor
No wlasnie nie. Problem jest i to dokladnie ten co napisalem. Przeczytaj jeszcze raz smile.gif

Uzyj LIVE w jquery
semper
Po pierwszym wywołaniu strony js podpina event do twojego formularza i wszystko gra. Jednak po zabawie z Ajaxem zwracany formularz to już nie ten sam dlatego nie działa. Potrzebujesz funkcji Live() tak jak Ci podpowiadał nospor.
lukasamd
@nosor:
Nie no jednak dobrze Cię zrozumiałem biggrin.gif

Kod
<head>
  <!-- TUTAJ MAMY DOLACZANY PLIK Z KODEM JAVASCRIPT -->
</head>
<body>
  <form>
    <div id="sometest">
      <input type="text" name="sometext" value="" />
      <input type="button" name="someinput" value="Send" class="someinput" />
    </div>
  </form>
</body>


Takie coś z użyciem click(function() jak pisałeś nie zadziała, trzeba użyć live, jest o tym w manualu jquery na przykładzie z bind.
No ale wyrzucenie inputa poza div rozwiązuje problem:

Kod
<head>
  <!-- TUTAJ MAMY DOLACZANY PLIK Z KODEM JAVASCRIPT -->
</head>
<body>
  <form>
    <div id="sometest">
      <input type="text" name="sometext" value="" />
    </div>
    <input type="button" name="someinput" value="Send" class="someinput" />
  </form>
</body>


Wtedy może być i click. No ale jak się dorzuci css, to lepiej mieć to w divie jednak winksmiley.jpg

Dzięki za pomoc.

@semper:
No właśnie, o tym przed chwilą się z manuala dowiedziałem.
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.