Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript] Skrypt dodawania inputów
nikestylex7
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Witam napisałem skrypt który dodaje po kliknięciu inputy. Do każdego inputa jest kolejny button obok, który odsłania dodatkowe opcje do wypełnienia lecz one się nie pojawiają. Problem jest w kodzie który ma się właśnie pojawiać bo gdy go zastąpię obojętnie czym np : "dupa" to już działa i się pojawia , więc nie wiem co jest nie tak może opcje zwiększania nazwy o +1. Mam też pytanie jak zrobić żeby ilość inputów była maksymalnie równa 10. a jak ktoś dalej będzie chciał powiększyć to pokaże się napis nie można dodać kolejnego inputa.

  1. <script>$(document).ready(function(){$('input[name="dodaj"]').click(function(){$('#inputy').append("<div class='kombi-row'><div class='kombi-line'><input type='text' name='imie" + ($('input[type= \"text\"]').size() + 1) + "'/></div><div class='kombi-line'> X </div><div class='kombi-line'><input type='text' name='imie" + ($('input[type= \"text\"]').size() + 1) + "'/></div><div class='kombi-line'> <input type='button' name='odkryj' onClick=showHide('jakisid" + ($('input[type= \"text\"]').size() + 1) + "','but" + ($('input[type= \"text\"]').size() + 1) + "') id='but" + ($('input[type= \"text\"]').size() + 1) + "' value='+'/></div><div style='display:none;' id='jakisid" + ($('input[type= \"text\"]').size() + 1) + "'><div>
  2. <span class='label'>Dodatkowe dane:</span>
  3. </div>
  4. <div id='inputy'>
  5. <div class='kombi-row'>
  6. <div>
  7. <span class='label'>Pozycja w lidze:</span>
  8. </div>
  9. <div class='kombi-line'><input type='text' name='mecz2" + ($('input[type= \"text\"]').size() + 1) + "' title='min. 3 znaki max. 16'/></div>
  10. <div class='kombi-line'>X</div>
  11. <div class='kombi-line'><input type='text' name='mecz22" + ($('input[type= \"text\"]').size() + 1) + "' title='min. 3 znaki max. 16'/></div>
  12. </div>
  13.  
  14. <div class='kombi-row'>
  15. <div>
  16. <span class='label'>Forma:</span>
  17. </div>
  18. <div class='kombi-line'><input type='text' name='mecz3" + ($('input[type= \"text\"]').size() + 1) + "' title='min. 3 znaki max. 16'/></div>
  19. <div class='kombi-line'>X</div>
  20. <div class='kombi-line'><input type='text' name='mecz33" + ($('input[type= \"text\"]').size() + 1) + "' title='min. 3 znaki max. 16'/></div>
  21. </div>
  22. <div class='kombi-row'>
  23. <div>
  24. <span class='label'>Ostatnie 5 spotkań:</span>
  25. </div>
  26. <div class='kombi-line'><input type='radio' name='mecz4" + ($('input[type= \"radio\"]').size() + 1) + "' value='1' checked='checked' />Zwycięstwo<input type='radio' name='mecz4" + ($('input[type= \"radio\"]').size() + 1) + "' value='2' checked='checked' />Remis<input type='radio' name='mecz4" + ($('input[type= \"radio\"]').size() + 1) + "' value='3' checked='checked' />Porażka</div><br />
  27. <div class='kombi-line'><input type='radio' name='mecz5" + ($('input[type= \"radio\"]').size() + 1) + "' value='1' checked='checked' />Zwycięstwo<input type='radio' name='mecz5" + ($('input[type= \"radio\"]').size() + 1) + "' value='2' checked='checked' />Remis<input type='radio' name='mecz5" + ($('input[type= \"radio\"]').size() + 1) + "' value='3' checked='checked' />Porażka</div><br />
  28. <div class='kombi-line'><input type='radio' name='mecz6" + ($('input[type= \"radio\"]').size() + 1) + "' value='1' checked='checked' />Zwycięstwo<input type='radio' name='mecz6" + ($('input[type= \"radio\"]').size() + 1) + "' value='2' checked='checked' />Remis<input type='radio' name='mecz6" + ($('input[type= \"radio\"]').size() + 1) + "' value='3' checked='checked' />Porażka</div><br />
  29. <div class='kombi-line'><input type='radio' name='mecz7" + ($('input[type= \"radio\"]').size() + 1) + "' value='1' checked='checked' />Zwycięstwo<input type='radio' name='mecz7" + ($('input[type= \"radio\"]').size() + 1) + "' value='2' checked='checked' />Remis<input type='radio' name='mecz7" + ($('input[type= \"radio\"]').size() + 1) + "' value='3' checked='checked' />Porażka</div><br />
  30. <div class='kombi-line'><input type='radio' name='mecz8" + ($('input[type= \"radio\"]').size() + 1) + "' value='1' checked='checked' />Zwycięstwo<input type='radio' name='mecz8" + ($('input[type= \"radio\"]').size() + 1) + "' value='2' checked='checked' />Remis<input type='radio' name='mecz8" + ($('input[type= \"radio\"]').size() + 1) + "' value='3' checked='checked' />Porażka</div><br />
  31. </div>
  32. </div></div></div>"); }); }); </script >


Ten post edytował nikestylex7 18.10.2012, 11:01:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Owszem, można się tak bawić, ale po co? To strasznie upierdliwe. Mam dwie propozycje. Skoro wiesz, że ma być max. 10 takich pól, to najpierw je sobie przygotowujesz:

  1. <div id="box1"><!-- zawartosc boxa --></div>
  2. <div id="box2"><!-- zawartosc boxa --></div>
  3. <div id="box3"><!-- zawartosc boxa --></div>
  4. <div id="box4"><!-- zawartosc boxa --></div>
  5. <!-- itd. -->


możesz wygenerować to np. w pętli PHP. Nadajesz w css lub za pomocą jQuery tym które mają być z początku niewidoczne display: none, po kliknięciu zmieniasz na display: block. Przy okazji to rozwiązuje problem dodawania pól powyżej 10-ciu.

Druga opcja, robisz jeden box:

  1. <div id="container">
  2. <div id="box1" class="box"><!-- zawartosc boxa --></div>
  3. </div>


i go kopiujesz w całości za pomocą jQuery, ew. później zmieniasz za pomocą jQuery czy to id, czy to klasę, czy też inne właściwości czy treści dzieci tego elementu, będzie to bardziej przejrzyste i przyjazne w edycji.

http://api.jquery.com/clone/

Ten post edytował b4rt3kk 18.10.2012, 11:39:06
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.12.2025 - 17:00