urmel: klapp endlich

wie schaffe ich es das hierbei das ich keinen fehler mehr angezeigt bekomme:

##########klappt nicht############################
function berechnen(element){
confirm(document.warenkorb.(showanzahl+element).value);
}
Dies scheint nicht zu klappen da die objekt-syntax automatisch den ausdruck "showanzahl+element" als string mit auswertes statt die werte der variable "element-Variable" reinzuschreiben.

###############das klappt#########################
function berechnen(element){
confirm(document.warenkorb.showanzahl0.value);
}
showanzahl0 ist hierbei das htmlelement

Hierbei handelt es sich um eine funktion die den wert eines bestimmten html-element ausliest und in einem confirm fester wiedergibt. Wenn ich dieses allerdings nicht hartcodiert eingebe also nicht über variablen klappt es. dies ist aber nicht im sinne des erfinders, ich möchte halt dynamisch druff zugreifen in dem ich der funktion variablen übergebe.

  1. wie schaffe ich es das hierbei das ich keinen fehler mehr angezeigt bekomme:

    ##########klappt nicht############################
    function berechnen(element){
    confirm(document.warenkorb.(showanzahl+element).value);
    }
    Dies scheint nicht zu klappen da die objekt-syntax automatisch den ausdruck "showanzahl+element" als string mit auswertes statt die werte der variable "element-Variable" reinzuschreiben.

    Hi,
    probier mal showanzahl+element+0.
    Dann ist es garantiert eine Zahl und kein String.

    Bye
    WS

    1. Hallo Ihr beiden,

      ##########klappt nicht############################
      function berechnen(element){
      confirm(document.warenkorb.(showanzahl+element).value);
      }
      Dies scheint nicht zu klappen da die objekt-syntax automatisch den ausdruck "showanzahl+element" als string mit auswertes statt die werte der variable "element-Variable" reinzuschreiben.

      Hi,
      probier mal showanzahl+element+0.
      Dann ist es garantiert eine Zahl und kein String.

      er könnte auch mit eval arbeiten. Aber der Punkt ist doch, wenn er mit variablen arbeitet sollte er villeicht das elements-objet bemühen:

      document.warenkorb.elements[showanzahl+element+0].value;

      Mal abgesehen das er etwas freundlicher zum Nutzer sein könnte. Ihm blos einen Wert vor die Füße zu klatschen, naja. Ist hoffentlich blos eine debugging funktion :-).

      Bye Ed X

      1. danke mit eval klappts endlich. ;)

  2. Moin,

    ##########klappt nicht############################
    function berechnen(element){
    confirm(document.warenkorb.(showanzahl+element).value);
    }
    ###############das klappt#########################
    function berechnen(element){
    confirm(document.warenkorb.showanzahl0.value);
    }
    showanzahl0 ist hierbei das htmlelement

    mit anderen Worten: Du hast in warenkorb mehrere
    Elemente namens showanzahl0, showanzahl1, ...?
    In diesem Fall mußt Du Dir den kompletten Befehl als
    String zusammenbasteln und das ganze mit eval(...)
    parsen lassen:

    // nicht getestet:
    function berechnen(element) {
      s = "confirm(document.warenkorb.showanzahl"+element+".value)";
      eval(s);
    }

    Besser wäre es jedoch, wenn showanzahl ein Array wäre,
    so daß man via ...warenkorb.showanzahl[element] - also
    ohne eval - darauf zugreifen könnte.

    Viele Grüße

    Andreas