Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] wykrywanie zmiany w dynamicznie dodanym polu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
szczeku
Witam,
chciałbym zrobić aby po wybraniu odpowiedniej wartosci w polu select, pokazywał się odpowiedni formularz (z tym nie ma problemu), a następnie w tym załadowanym formularzu jest pole typu input gdzie chce wpisać ilość pól które chce aby sie pojawiły, albo za pomaca przycisków dodaj-usuń dodawanie tych pol. Wiem jak zrobić wszystko z osobna jednak nie umiem poradzić sobie z reakcją na zmiane w tym dynamicznie dodanym polu input.
  1. $(document).ready(function() {
  2. $("#fieldtype").change(function () {
  3. var str = "";
  4. $("#fieldtype option:selected").each(function () {
  5. if ($(this).val() == 1) {
  6. str += 'Ilość odpowiedzi : <input type="text" name="ilosc_odpowiedzi" id="ilosc_odpowiedzi"><p id="odpowiedzi"></p>';
  7. }
  8. else if ($(this).val() == 2) {
  9. str += "<input name="+$(this).text() + "values= "+$(this).text;
  10. }
  11. });
  12. $("#field").html(str);
  13. }).change();
  14. $("#ilosc_odpowiedzi").keyup(function() {
  15. var odp = "";
  16. if($(this).val() == 1) {
  17. odp += 'Odpowiedź 1 : <input type="text" name="odp1">';
  18. }
  19. $("#odpowiedzi").html(odp);
  20. });
  21. });


wpisanie w polu ilosc_odpowiedzi nic nie robi, prosze o pomoc.
Pozdrawiam
pgrzelka
do nowo dodanych inputów musisz przypisać akcje po ich utworzeniu
czyli najpierw dodajesz javascriptem inputa, następnie przypisujesz mu akcje, a teraz robisz odwrotnie, przypisujesz akcje do nie istniejącego inputa
erix
albo live(). winksmiley.jpg
szczeku
Dobra problem rozwiązany. Umieszczam rozwiązanie może komuś sie przyda.
  1. <script src="http://code.jquery.com/jquery-latest.js"></script>
  2.  
  3. $(document).ready(function() {
  4. $("#fieldtype").change(function () {
  5. var text = "";
  6. var input = "";
  7. var odp = "";
  8. $("#fieldtype option:selected").each(function () {
  9. if ($(this).val() == 1) {
  10. text += 'Ilość pól : ';
  11. input = $('<input type="text" name="ilosc_pol" id="ilosc_pol">');
  12. input.keyup(function() {
  13. for(var i=1;i<=$(this).val();i++) {
  14. odp += 'pole '+i+' : <input type="text" name="odp'+i+'"><br>';
  15. $("#odp").html(odp);
  16. }
  17. })
  18. }
  19. else if ($(this).val() == 2) {
  20. //instrukcje dla opcji 2 z lsty rozwijanej
  21. $("#odp").html(odp);
  22. }
  23. });
  24. $("#field").html(text).append(input);
  25. $("#odp").html(odp);
  26. }).change();
  27. });
  28. </head>
  29. <select id="fieldtype">
  30. <option value="">wybierz</option>
  31. <option value="1">1</option>
  32. <option value="2">2</option>
  33. <option value="3">3</option>
  34. <option value="4">4</option>
  35. </select>
  36. <p id="field"></p>
  37. <p id="odp"></p>
  38. </body>
  39. </html>
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.