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
ahhh... automatyczne edytowanie postow
bajer,nie? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Cytat
czy da sie cos zrobic aby w przypadku gdy mam np. 5 pol - wypelnie je i zapragne dodac szoste wartosci 5 wczesniejszych nie wymazaly sie?
hehe, faktycznie, wymazuja sie. I wlasnie dlatego jestem przeciwnikiem innerHTML. Tutaj jak nic nalezy uzyc DOMa.

Cytat
ale nie znalazlem tam przeciwienstwa innerHTML czyli czegos czym moglbym obciac czesc string'a
I znowu DOM (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
nadajesz polom ID, potem pobierasz dane pole na podstawie ID: document.getElementById(), a potemo usuwasz przy pomocy removeChild. Zapraszam do dokumentacji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jak nic nie zdzialasz to moze bede mial chwilke by cos wiecej dopisac

edit:
a masz, przerobka na DOM, nie usuwa wpisanych wartosci:
Kod
<script type="text/javascript">
var countRec = 1;
var countRes = 1;
var countProf = 1;
function OneMoreField(idGroup, count, objHref)
{
    var MaxFields = 9;
    if (count > MaxFields)
        return;
    objDiv = document.getElementById(idGroup);//.innerHTML+='<input type="text" name="'+idGroup+'[]" />';
    element=document.createElement('input');
    element.name=idGroup+'[]';
    objDiv.insertBefore(element, objHref);
}
</script>

<label for="Requirements">Requirements:</label>
   <div id="Requirements">
    <input type="text" name="Requirements[]"/><a href="#" onclick="OneMoreField('Requirements', ++countRec, this);">one more field</a>
   </div>

   <label for="Responsibilities">Responsibilities:</label>
   <div id="Responsibilities">
    <input type="text" name="Responsibilities[]" /><a href="#" onclick="OneMoreField('Responsibilities',++countRes,this);">one more field</a>
   </div>
    
   <label for="Proffer">Proffer:</label>
   <div id="Proffer">
    <input type="text" name="Proffer[]" /><a href="#" onclick="OneMoreField('Proffer',++countProf, this);">one more field</a>
   </div>

Usuwanie pozostawiam Tobie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
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: 17.10.2025 - 03:49