Chris: disable in mehreren formularfeldern

Hallo.

Ich habe vier Tabellenzellen nebeneinander, in denen jeweils ein formularfeld drin ist. Und ein javascript.

Den ersten beiden formularfeldern habe ich jeweils den gleichen namen gegeben und den letzten beiden auch. Hintergrund: Wenn ich in das erste oder zweite feld etwas eingebe, soll das dritte und vierte "ausgegraut" werden bzw. wenn ich in das dritte oder vierte etwas eingebe, sollen das erste und zweite "ausgegraut" werden. Es funktioniert aber immer nur bei dem ersten bzw. dritten. Heißt: Wenn ich in das erste o. zweite feld etwas eingebe, wird nur das dritte "ausgegraut" und nicht das vierte ebenfalls, obwohl es den gleichen Namen hat! Genauso sieht es andersrum aus: Wenn ich in das dritte oder vierte etwas eingebe, wird nur das erste "ausgegraut".

Hier mal eine betreffende Zeile aus meinem Skript:

echo "<tr class="mainrow">
<td></td>
<td>
<table border="0">
<tr><td>

<input type="text" onchange="disable_element(this,'g1');" id="h1" name="torh1" size="1">

</td>
<td>

<input type="text" onchange="disable_element(this,'g1');" id="h1" name="goalh1" size="20">

</td></tr>
</table>
</td>
<td>&nbsp;</td><td>&nbsp;</td>
<td colspan="5">
<table>
<tr>
<td>

<input type="text" onchange="disable_element(this,'h1');" id="g1" name="torg1" size="1">

</td>
<td>

<input type="text" onchange="disable_element(this,'h1');" id="g1" name="goalg1" size="20">

</td></tr>
</table>
</td></tr>\r";

Hoffe ihr könnt mir weiterhelfen!

  1. Hallo Chris.

    Den ersten beiden formularfeldern habe ich jeweils den gleichen namen gegeben und den letzten beiden auch.

    Dagegen ist auch nichts einzuwenden, aber ID ist immer eine eindeutige Zuordnung, sprich -- eine ID darf _niemals_ mehr als einmal vorkommen.
    Zumindest nicht in einem Dokument.

    Hoffe ihr könnt mir weiterhelfen!

    Verpasse jedem Element eine eigene ID und greife darauf mittels getElementByID zu.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    Try it: Become an Opera Lover in 30 days
    1. Verpasse jedem Element eine eigene ID und greife darauf mittels getElementByID zu.

      Gruß, Ashura

      Wollte jetzt eigentlich nich wieder was neues einbauen.

      Gibt es keine andere Möglichkeit mit einer anweisung, zwei elemente zu steuern.

      Wenn ich es so mache wie du sagst, dann funktioniert es ja auch nicht. Will ja wenn ich feld 1 o. 2 was geschrieben wird, feld 3 u.4 ausgegraut werden. und ich kann ja nur eine ID dann nehemen. Das bringt mir nichts.

      Trotzdem danke erstmal.

      1. Hallo Chris.

        Gibt es keine andere Möglichkeit mit einer anweisung, zwei elemente zu steuern.

        Wer hindert dich daran, zwei Befehle in eine selbstdefinierte Funktion zu packen, welche dann wahlweise von den anderen beiden Elementen aufgerufen wird?

        Wenn ich es so mache wie du sagst, dann funktioniert es ja auch nicht.

        Ich habe nicht ein Wort darüber verloren, wie du es machen musst, ich habe dir nur einen Tipp gegeben, womit es machbar ist.

        Will ja wenn ich feld 1 o. 2 was geschrieben wird, feld 3 u.4 ausgegraut werden.

        Siehe oben.

        und ich kann ja nur eine ID dann nehemen.

        Richtig, das stellt aber kein Problem dar.

        Das bringt mir nichts.

        Ein bisschen mitdenken musst du schon auch noch. ;)

        Gruß, Ashura

        --
        Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
        Try it: Become an Opera Lover in 30 days
        1. Wer hindert dich daran, zwei Befehle in eine selbstdefinierte Funktion zu packen, welche dann wahlweise von den anderen beiden Elementen aufgerufen wird?

          Na dann müsste es doch mit dem aktuellen auch gehen, dass ich zwei ID´s aufrufe oder nicht?

          Irgendwie komme ich nicht mit.

          1. Hallo Chris.

            Na dann müsste es doch mit dem aktuellen auch gehen, dass ich zwei ID´s aufrufe oder nicht?

            Mit dem aktuellen was?
            Je nachdem, wie du es anstellst, hast du am Ende entweder:

            Funktion1
            -> aufgerufen von input1 und input2
            -> deaktivieren input3 und input4

            Funktion2
            -> aufgerufen von input3 und input4
            -> deaktivieren input1 und input2

            oder:

            Funktion
            -> aufgerufen von input1, input2, input3 oder input4
            -> mittels Parametern wird bestimmt, welche inputs deaktiviert werden.

            Irgendwie komme ich nicht mit.

            Arbeite dich ein wenig durch die entsprechenden Kapitel in SelfHTML und stelle dann Fragen, wenn du Probleme hast.

            Gruß, Ashura

            --
            Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
            Try it: Become an Opera Lover in 30 days