Announcement

Collapse
No announcement yet.

Dynamisch erzeugte Feldnamen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dynamisch erzeugte Feldnamen

    Hi all

    ich habe folgendes problem, vielleicht kann mir wer helfen:

    ich lasse über ein perlscript eine seite (formular)
    mit verschiedenen eingabefeldern und checkboxen erzeugen.
    da diese mit daten aus einer datenbank gefüllt werden, gebe ich jedem feld und jedem datensatz die db-id mit
    sprich
    <PRE>
    form name="test"
    select name="sperren50"
    option LEER /option
    option 1 /option
    option 2 /option
    /select
    input type="checkbox" name="loeschen50"
    br
    select name="sperren75"
    option LEER /option
    option1 /option
    option2 /option
    /select
    input type="checkbox" name="loeschen75"
    /form
    </PRE>
    in etwa so sieht das aus, gibt noch mehr felder.

    nun wollte ich, so bald wie man ein häckchen in die jeweilige checkbox setzen will, eine alertmeldung kommt, wenn die option = LEER ist.

    document.test.sperren50......

    document.test.loeschen50......

    document.test.sperren75......

    document.test.loeschen75.....

    die anweisungen funktionieren, wenn ich die felder mit direkten namen anspreche.
    nur, da die seite dynamisch erzeugt wird, kann es sein, dass beim nächsten mal eine andere zahl dahinter steht.

    gibt es evtl eine möglichkeit an die elementnamen heranzukommen?
    vielleicht, wenn ich eine zahlenvariable hochzähl und die an den basisnamen anhänge?

    leider bin ich in javascript net so firm
    jegliche versuche schlugen fehl

    Fehler: document.test.sperren[i].....
    Objekt document.test.sperren. nicht gefunden

    Ich würde mich über Hilfe freuen
    Vielen Dank!

  • #2
    Hi Blasco,

    probiers mal so:
    Die Namen stehen ja: sperren50, sperren75... .
    Das heisst, Du musst in dem JS-Funktionsaufruf den Namen mitgeben:

    <pre>
    &lt;script language="JavaScript"&gt;
    function checkOption(n) {
    formsObj = document.forms[0];
    v = eval('formsObj.'+n+'.options[formsObj.'+n+'.selectedIndex].value');
    if (!v) {
    alert('Achtung!!! Diese OPtion ist bereits nicht vorhanden...(?)...');
    }
    else 0; // mach doch was du willst
    }
    &lt;/script&gt;
    &lt;form name="test"&gt;
    &lt;select name="sperren50"&gt;
    &lt;option value=""&gt;LEER&lt;/option&gt;
    &lt;option value="1"&gt;1&lt;/option&gt;
    &lt;option value="2"&gt;2&lt;/option&gt;
    &lt;/select&gt;
    &lt;input type="checkbox" name="loeschen50" onClick="return checkOption('sperren50');"&gt;
    &lt;br&gt;
    &lt;select name="sperren75"&gt;
    &lt;option value=""&gt;LEER&lt;/option&gt;
    &lt;option value=""&gt;&lt;/option&gt;
    &lt;option value=""&gt;&lt;/option&gt;
    &lt;/select&gt;
    &lt;input type="checkbox" name="loeschen75" onClick="return checkOption('sperren75');"&gt;
    &lt;/form&gt;
    </pre>

    d.h. in dem JS-Aufruf steht dann der name, der ueber eval() evaluiert wird.
    Wichtig ist, dass Du den value in den OPTIONs mitgibst. Und der muss 0 oder '' sein, wenn Du nischt haben willst, oder einen WERT ungleich 0 oder '' haben.

    Guhd Lack,

    Andr

    Comment

    Working...
    X