• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

löschfunktion in for-schleife

CGMAX

Neues Mitglied
Ich suche nach einer Möglichkeit Jedes einzelne Feld für sich zu löschen und dachte da an eine foreach-schleife leider funktioniert die schleife nicht richtig und beim löschen bekomme ich für i immer 2 raus. ich glaube, dass der die schleife nur am Anfang durchläuft und so Probleme aufkommen. Ich hoffe ihr habt eine Lösung oder eine bessere Idee.
PHP:
<!DOCTYPE html>
<html>
<head>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
<title>        Felderstellung        </title>
</head><body>
<fieldset id="test1" style="width:300px;">  
  <table cellspacing="2" cellpadding="2" >    
<legend>Test 1 <button id="loeschen1"> Feld l&ouml;schen</button> </legend>        
<tr >       
<td>Name:</td><td><input type="text" name="name1"/></td>
</tr>        
<tr>                    
<td valign="top">Text:</td><td><textarea name="text1" style="resize: none;" rows="4"cols="28"></textarea></td>       
 </tr>       
  </table>
</fieldset>    
<hr>   
 <button id="erstellen">erstellen</button>
<script type="text/javascript">    
var z = 1;  
  var i = 1;  
  var grenze = 10;  
  var xarray = ['1'];   
$(document).ready(function(){   
   $("#erstellen").click(function(){          
    if( z < grenze){           
       z++;           
      xarray = xarray.concat(z);         
         $('\n\           
           <fieldset id="test'+z+'" style="width:300px;">\n\ 
              <legend>Test ' +z+' <button id="loeschen'+z+'">Feld l&ouml;schen</button></legend>\n\ 
                 <table>\n\ 
                     <tr>\n\
                        <td>Name:</td>\n\
                        <td><input type="text" name="name'+z+'"/></td>\n\
                    </tr>\n\ 
                   <tr>\n\
                        <td valign="top">Text:</td>\n\
                        <td><textarea name="text'+z+'" style="resize: none;" rows="4"cols="28"></textarea></td>\n\ 
                   </tr>\n\ 
               </table>\n\ 
           </fieldset>').insertBefore("hr");
            length = xarray.length;
            alert ('Z beträgt: '+z+' Array: '+xarray+ ' Elemente: '+length);
        }        else{
            alert ('Sie können keine weiteren Felder erstellen');
        }  }); });
 $(document).ready(function(){ for( var i in xarray ) {
     $("#loeschen"+xarray [i] ).click(function(){
            if( z >= 2){
                $("#test"+xarray [i] ).remove();
                z--;
                xarray.pop();
                length = xarray.length;
                alert ('Z beträgt: '+z+' Array: '+xarray+ ' Elemente: '+length+' '+xarray [i]);
            }            else{ 
               alert ('Sie können keine weiteren Felder löschen');
            }        });} });

</script>
</body>
</html>
 
Zurück
Oben