Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Dodawanie pol formularza
Crozin
post
Post #1





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Na początek: JS - nie znam (wszystko co wiem jest jedynie z widzenia i domyslow)
Co chcę osiągnąć: Chcę dodac jedno pole formularza do div'a o id X po klieknieciu w link. Max ilość dodanych pol: 9.
Co udało mi się osiągnać: nic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod
:
...
<html>
<head>
<script type="text/javascript">
function OneMoreField(Group)
{
  var MaxFields = 9;
  var Counter.Group = 0;
  
  if(Counter.Group < MaxFields)
  {
   document.getElementById(Group).innerHTML='<input type="text" name="'+Group+'[]" />';
   Counter.Gropu += 1;
  }
}
</script>



Powyższy kod na 100% jest zły (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale co ma z założenia robic?
Najpierw zostala określona max. ilość możliwych do dadania pól. Poźniej jest zmienna "licznki". Nastepnie jezeli zmienna Counter.Group (Gropu to zmienna przekazana w 1arg - pewnie zle ja "wstawilem") ma wartosc miejsa od 9 to do odpowiedniego div'a ma zostac dodany kod i wartosc Counter ma zostac zwiekszona.

Do tego jest jeszcze html:
  1. :
  2. <label for="Requirements">Requirements:</label>
  3. <div id="Requirements">
  4. <input type="text" name="Requirements[]" /><a href="java script:OneMoreFiled('Requirements')">one more field</a>
  5. </div>
  6.  
  7. <label for="Responsibilities">Responsibilities:</label>
  8. <div id="Responsibilities">
  9. <input type="text" name="Responsibilities[]" /><a href="java script: OneMoreFiled('Responsibilities')">one more field</a>
  10. </div>
  11.  
  12. <label for="Proffer">Proffer:</label>
  13. <div id="Proffer">
  14. <input type="text" name="Proffer[]" /><a href="java script:OneMoreFiled('Proffer')">one more field</a>
  15. </div>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Na początek: JS - nie znam

A więc drogi Kszysztofie, nawet osoba, ktora niezna js, a zna inne jezyki (a wiem ze znasz inne ), powinna wiedziec, ze cos takiego:
Kod
.innerHTML='....';

Nie dopisze, a nadpisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Tak wiec nie = a +=

Tak na szybko, by ci pokazac mniej wiecej tok myslenia:
  1. <script type="text/javascript">
  2. var countRec = 1;
  3. var countRes = 1;
  4. var countProf = 1;
  5. function OneMoreField(idGroup, count)
  6. {
  7. var MaxFields = 9;
  8. if (count > MaxFields)
  9. return ;
  10. document.getElementById(idGroup).innerHTML+='<input type="text" name="'+idGroup+'[]" />';
  11. }
  12. </script>
  13.  
  14. <label for="Requirements">Requirements:</label>
  15. <div id="Requirements">
  16. <input type="text" name="Requirements[]" /><a href="java script:OneMoreField('Requirements', ++countRec);">one more field</a>
  17. </div>
  18.  
  19. <label for="Responsibilities">Responsibilities:</label>
  20. <div id="Responsibilities">
  21. <input type="text" name="Responsibilities[]" /><a href="java script:OneMoreField('Responsibilities',++countRes);">one more field</a>
  22. </div>
  23.  
  24. <label for="Proffer">Proffer:</label>
  25. <div id="Proffer">
  26. <input type="text" name="Proffer[]" /><a href="java script:OneMoreField('Proffer',++countProf);">one more field</a>
  27. </div>

Oczywiscie to powinno byc na DOMie i wogole ciut lepiej powinno wygladac, ale jak mowilem chce ci tylko pokazac mniej wiecej jak robic
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: 13.10.2025 - 21:18