amidala: Textfeld dynamisch deaktivieren

Hi,

ich habe auf meiner seite eine select box und ein textfeld. wenn in der selectbox das element mit dem wert -1 ausgewählt ist, soll das textfeld deaktiviert werden, andernfalls aktiviert.

nun kommt hinzu, dass ich x selects und x textfelder habe. deswegen habe ich eine javascript funktion und übergebe die nr, um welches textfeld es sich handelt.

function jscheckcard(target, nr)
{
   var tmp = "form_card_text_" + nr;
   if (target.value == -1)
      document.form.tmp.disabled = true;
   else
      document.form.tmp.disabled = false;

/*
   if (target.value == -1)
      document.form.form_card_text_1.disabled = true;
   else
      document.form.form_card_text_1.disabled = false;
   */
}

der auskommentierte code funktioniert wunderbar. dies ist jedoch statisch mit der 1. anstatt der 1 möchte ich da gerne den parameter nr haben. leider läuft mein code so nicht.

kann mir da wer helfen?

amidala

  1. Hallo amidala.

    function jscheckcard(target, nr)
    {
       var tmp = "form_card_text_" + nr;
       if (target.value == -1)
          document.form.tmp.disabled = true;
       else
          document.form.tmp.disabled = false;

    /*
       if (target.value == -1)
          document.form.form_card_text_1.disabled = true;
       else
          document.form.form_card_text_1.disabled = false;
       */
    }

    der auskommentierte code funktioniert wunderbar. dies ist jedoch statisch mit der 1. anstatt der 1 möchte ich da gerne den parameter nr haben. leider läuft mein code so nicht.

    kann mir da wer helfen?

    Du solltest dir hierzu Christian Kruses Artikel zum Umgang mit Objekten ansehen. Obige Schreibweise (im auskommentierten Bereich) ist nicht die einzige Möglichkeit, auf das jeweilige Formularelement zuzugreifen.

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. hi,

      danke für den link. habe das problem mit eval gelöst.

      amidala

      1. Hallo amidala.

        danke für den link. habe das problem mit eval gelöst.

        Pfui! Lösche dies bitte gleich wieder und schau dir den verlinkten Artikel an.

        Einen schönen Samstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
  2. Hallo,

    var tmp = "form_card_text_" + nr;

    document.form.tmp.disabled = true;

    Siehe http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines, Schema 4.

    document.form["formularname"].elements["elementname"]

    Anstatt direkt Zeichenketten anzugeben kann man auch Variablen verwenden:

    var formularname = "name", element = "name";
    document.form[formular].elements[element]

    Mathias