[javascript problem] wie vergebe ich via setAttribute einem input einen namen?

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von freaksta, 28.02.2007.

  1. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    hallo!

    also ich habe hier ein formular. im Prinzip läuft dieses system mit php4. allerdings wollte ich gerne gewisse sachen über javascript regeln. zum einen ist das die auswahl von gewissen textelementen (funktioniert einwandfrei schon in js) über radio buttons.

    zum anderen können noch via buttons einzelne eingabefelder zu den einzelnen bereichen hinzugefügt oder weggenommen werden.

    also verdeutlichung habe ich euch hier mal 2 scrennies gemacht, das ihr euch das auch vorstellen könnt:

    [DLMURL]http://soundscientists.de/forum/screen1.JPG[/DLMURL]
    [DLMURL]http://soundscientists.de/forum/screen2.JPG[/DLMURL]

    also es funktioniert alles, will ich allerdings den eingabefeldern einen namen mithinzufügen über setAttribute, dann macht er mir immer einen fehler...die inputfields werden quasi in ein <ui> feld gepackt mit der id "partTwo"...

    hier ist mal der code:

    Code:
       	function setNewField(targetId) {	
       	
       		  var index = "";
       	
       		  if (targetId == "appendFirst") {
       		  		firstCount++;
     
     				index = targetId + firstCount;
       		  
       		  } else if (targetId == "appendSecond") {
       		  		secondCount++;
       		  		
       		  		index = targetId + secondCount;
       		  }
       	
       		  
       	
    	      for(var i=0; i<1; i++)
    		  {
    			  var li1 = document.createElement("li");
    			  var input1 = document.createElement("input");
    			  input1.style.width = "322px";
    			  var brk = document.createElement("br");
    			  li1.appendChild(input1);
    			  li1.appendChild(brk);
    			  document.getElementById(targetId).appendChild(li1);
    			  input1.setAttribute("name", index);
    		  }
    		   
       	}
    
    nun ist es natürlich so, das mir das alles bisher nichts bringt wenn ich nicht weiss wie ich den eingabefeldern auch den namen geben kann...sonst kann ich ja die posts nicht auslesen....

    ...also wenn da jmd ne idee hat wärs echt super, wenn er sich dazu äussern könnte!

    vielen dank schonmal!
     
    Zuletzt bearbeitet: 28.02.2007
  2. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    MacUser seit:
    01.03.2006
    Wie wäre es wenn du dem Element erst sein Attribut "name" gibst und es danach dem document zuweist?
     
  3. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    gleiches spiel geht deswegen auch nicht...hab ich als erstes schon versucht. dann hat ein freund gemeint (der sich eig in sachen js und ajax relativ gut auskennt) das manche es leiber haben wenn dus danach machst...hörte sich für mich auch komisch an, weil normal is ja der weg anders rum...naja, auf jedenfall gehts auf deinen vorgeschlagenen weg auch nicht...

    ich finde das sehr seltsam warum das nicht geht...einen anderen weg gibts ja wohl nicht den namen zu vergeben odeR?
     
  4. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    MacUser seit:
    01.03.2006
    und wo wird deine Variable index initialisiert? Außerhalb des hier geposteten Ausschnitts nehme ich an.

    Also das: input1.setAttribute("name", index);
     
  5. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    ne, die ist ja direkt unter dem funktionsrumpf gleich.

    bin jetzt schon soweit gekommen das er da alles durchmacht und wenn ich am ende der funktion dann folgendes schreibe:

    Code:
    		var node = document.getElementById(targetId).lastChild;  
    		
    		alert("indexinhalt: " + node.getAttribute("name")); 
    
    dann sagt er mir das sei null...alleridings steht in der variable index ja was drin...das hab ichs chon mehrmals getestet via alert
     
  6. Marzelpan

    Marzelpan MacUser Mitglied

    Beiträge:
    58
    Zustimmungen:
    0
    MacUser seit:
    31.10.2003
    Hi,
    initialisierst Du auch irgendwo firstCount und secondCount auf 0? Dann funktioniert das nämlich wunderbar.

    Marcel
     
  7. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    ja, die sind global für diese seite initialisiert...jeder sagt das müsste eigentich hinhaun, aber warum zum geier bekomm ich da null...

    hmhm...ich weiss nicht...ich muss das heute nochmal ausgiebig testen, evtl setzt der ja eh die namen richtig...
     
  8. Marzelpan

    Marzelpan MacUser Mitglied

    Beiträge:
    58
    Zustimmungen:
    0
    MacUser seit:
    31.10.2003
    Kennst Du Firebug für Firefox? Das ist ein netter Javascript-Debugger und DOM-Browser. Damit könntest Du Deinen Javascript-Code schrittweise durchgehen - hat mir schon sehr geholfen.

    Marcel
     
  9. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    jo, dabei hab ich schon so manchen fehler entdeckt mit dem! der ist echt weltklasse dafür...der meckert aber auch nicht...nur er tuts einfach ned wie er soll...

    aber ihr seht doch da nun auch keinen fehler darin spontan oder?
     
  10. freaksta

    freaksta Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    0
    MacUser seit:
    22.02.2007
    so...habs nun endlich rausbekommen...hatte nen simplen schreibfehler in der php page danach...und somit hatte ich nen falschen post namen...und das wegen dem null bei der attribut abfrage hat mich dann ganz kirre gemacht...

    nichts desto trotz bin ich nun auch drauf gekommen wie man aus dem node das mit dem namen etc pp rausbekommen! kann für alle dies noch interessiert:

    der node besteht ja in meinem fall aus mehreren html tags, dh er selber hat natürlich kein solches attribut (hät mir auch vorher klar sein müssen).

    man muss anstelle des getAttribute(bla) nur unten stehenden code machen, und er gibt dir das aus was in dem node steht (eig schon zu simpel um wahr zu sein):

    Code:
    alert("nodeinhalt" + node.innerHTML);
    
    bitte dieses thema closen!

    danke nochmal an alle poster!
     

Diese Seite empfehlen