Manu: Formulardaten in neues Formular kopieren

Hallo zusammen,

ich habe 3 fast identische Formulare, die möglicherweise identischen Inhalt aufweisen können. Soll der Inhalt des bspw. zweiten Formulars identisch sein, möchte ich mit einem Klick auf einen Link die Daten des ersten ins zweite einfügen. So weit zur Theorie...

Nun habe ich folgende Funktionen:

function copyFormData (sSource,sTarget) {
 var y = document.forms[sSource +'Form'].elements;
 for(i = 0; i < y.length; i++) {
  if(document.getElementById(y[i].id)) {
   newid = str_replace(sSource,sTarget,y[i].id);
   document.getElementById(newid).value = y[i].value;
   //alert(str_replace(sSource,sTarget,y[i].id));
   //break;
  }
 }
}
function str_replace (search, replace, subject) {
  var result = "";
  var  oldi = 0;
  for (i = subject.indexOf (search); i > -1; i = subject.indexOf (search, i)) {
    result += subject.substring (oldi, i);
    result += replace;
    i += search.length;
    oldi = i;
  }
  return result + subject.substring (oldi, subject.length);
}

Diese werden wie folgt aufgerufen:
<a href="#" onclick="copyFormData('orderer','shipping');return false;">klick</a>

Dummerweise bekomme ich den Fehler (Firebug)
Index or size is negative or greater than the allowed amount" code: "1
und kann ihn mir nicht erklären :( Das Alert gibt mir die richtige ID aus...

Die Funktion str_replace stammt übrigens nicht von mir...

Hat jemand da eine Idee?

Gruß,
Manu

  1. Hi,

    Index or size is negative or greater than the allowed amount" code: "1

    in welcher Code-Zeile wird der Fehler denn angezeigt? Welche relevanten Werte liegen im Moment des Fehlers vor?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      danke für Deine Antwort - Firebug meldete mir allerdings keine Zeilennummer.
      Aber ich habe eben nach einer anderen str_replace-funktion gesucht und mit der folgenden klappts:

      function str_replace(search, replace, subject) {
       return subject.split(search).join(replace);
      }

      Dürfte auch etwas flotter sein...

      Gruß,
      Manu

      1. Hi,

        danke für Deine Antwort - Firebug meldete mir allerdings keine Zeilennummer.

        Firebug ist ein Stück weit eine IDE, die es Dir ermöglicht, Breakpoints zu setzen und befehlsweise mit dem Programmablauf fortzufahren. Du kannst dabei Variablen und Expressions beobachten. Zum Debuggen ist das Ding eigentlich verflucht geil ...

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Auf jeden Fall, FB hat mir schon öfters den Hintern gerettet ;)

          Das Debuggen mit Breakpoints nutze ich jedoch nicht so intensiv, ist eigentlich ein guter Punkt bei solchen Problemen wie oben...

          Gruß,
          Manu