werte von abhängigen Inputfeldern mit onKeyUp ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • werte von abhängigen Inputfeldern mit onKeyUp ändern

    moin,
    ich versuche seit geraumer zeit ein formular mit 2-3 inputfeldern zu erstellen, dessen werte durch javascript arrays definiert sind.

    Beispiel: in das erste feld 'regal' wird eine zahl eingegeben. ist diese zahl im array 'regal' definiert erscheint im feld 'archiv' die dazugehörige Zahl aus dem array 'archiv' (z.B.: 1=>10 , 5=>50 , 12=>99). (die beiden arrays haben eine identische zahl an elementen und sind richtig sortiert). ist diese zahl nicht vorhanden soll einfach keine ausgabe an das feld 'archiv' übergeben werden.

    leider gehen alle meine versuche deutlich schief, folgendes liefert zumindest eine vorstellung wie es aussehen soll (natürlich ohne die fehlerhaften Ausgaben).

    über hilfe oder 'nen hint würde ich mich freuen, thx, crisdoe

    PHP-Code:
    <html>
    <
    head>
    <
    title>test</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <
    script language="JavaScript" type="text/JavaScript">
    <!--
    var 
    regal = new Array('1','4','5','6','12');
    var 
    archiv = new Array('10','40','50','55','99');   
    //-->
    </script>
    </
    head>
    <
    body>
    <
    form action="#" method="post" enctype="application/x-www-form-urlencoded" name="insert">
    <
    input type="text" name="update[regal]" size="7" value=""
    onKeyUp="document.insert.elements['update[archiv]'].value=archiv[this.value];">
    <
    input type="text" name="update[archiv]" size="7" value="">
    </
    form>  
    </
    body>
    </
    html
    EDIT:
    break sponsored by Abraxax
    Zuletzt geändert von Abraxax; 17.04.2004, 21:43.

  • #2
    so bekommst du erstmal funktionalität:
    Code:
    var regal = new Array(1,4,5,6,12);
    var archiv = new Array(10,40,50,55,99);   
    .
    .
    .
    .
    onchange="this.form.elements['update[archiv]'].value=archiv[this.value];
    allerdings entspricht die eingabe im feld dem schlüssel des arrays
    archiv ... d.h. archiv muss mehrdimensional sein.
    Kissolino.com

    Kommentar


    • #3
      Moin,
      das Prob ist eindeutig, es liegt an dieser Operation:
      =archiv[this.value];">

      sprich Tippe ich ne 1 bei regal ein, dann geht er zum 1. Element des Arrays und gibt dessen Inhalt aus, sprich 1=40 und darin liegt dein Prob.
      Warum arbeitest Du überhaupt mit 2 arrays?? So wie Du das vorhast, reicht voll 1 Array Wobei z.B Element 1 den Wert 10 hat. tippt der Anwender nun ne 1 ein bekommt er auch den richtigen Wert (10) ausgegeben.

      Anbei mal so wie es funktioniert inkl. Überprüfung ob der eingegebene Wert auch eine wirkliche Zahl ist.

      Code:
      <html>
      <head>
      <title>test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <script language="JavaScript" type="text/JavaScript">
      <!--
      //var regal = new Array('1','4','5','6','12');
      //var archiv = new Array('10','40','50','55','99');   
      var all = new Array();
      all[1]=10;
      all[4]=40;
      all[5]=50;
      all[6]=55;
      all[12]=99;
      
      function setUpdateArchiv(param)
      {
      	if(isNaN(param)==false && all[param]){
      	document.insert.elements['update[archiv]'].value=all[param];}
      	else{
      	document.insert.elements['update[archiv]'].value="";
      	}
      }
      //-->
      </script>
      </head>
      <body>
      <form action="#" method="post" enctype="application/x-www-form-urlencoded" name="insert">
      <input type="text" name="update[regal]" size="7" value=""
      onKeyUp="setUpdateArchiv(this.value);">
      <input type="text" name="update[archiv]" size="7" value="">
      </form>  
      </body>
      </html>
      Ich hoffe mal damit kommst du weiter.
      Grüsse Murray


      EDIT: @Wurzel war wiedermal schneller *lächel

      Kommentar


      • #4
        ... UND WIE ICH DAMIT WEITERKOMME!!!

        Habt 1000 Dank ihr beiden, hab's voll verstanden und es funkt.
        Ihr habt mir diesen Abend gerettet!

        THX, crisdoe

        Kommentar

        Lädt...
        X