Parameterübergabe in Funktion an getElementbyID

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

  • Parameterübergabe in Funktion an getElementbyID

    Hallo, ich habe mal wieder eine Frage zu Javascript:

    Folgende Funktion rufe ich so auf:
    PHP-Code:
    document.getElementById("rb").onchange onRubrikChanged("ff");


    function 
    onRubrikChanged(sx) {

      var 
    document.getElementById(sx); <---------------------

      if (
    this.value) {
        
    r.style.visibility "visible";
        
    r.select();
        
    r.focus();
      } else 
    r.style.visibility "hidden";
    }; 
    Der Parameter sx enthält auch nun den Wert "ff" (durch Ausgabe überprüft), aber leider wird die Variable r nicht richtig besetzt.
    Fehlermeldung: r has no properties

    Wenn ich die Funktion mit festem Wert aufrufe, funktionierts?!
    PHP-Code:
    function onRubrikChanged() {

      var 
    document.getElementById("ff"); <--------------------- 
    Wo ist der Fehler?

    Danke
    Busstop

  • #2
    onchange ist ein Event und keine Eigenschaft/Attribut. Den Funktionsaufruft mußt du etwa so gestalten:

    <select .... onchange="onRubrikChanged('ff');">

    Kommentar


    • #3
      mh... man kann die EventHandler auch dynamisch setzen (was ich mitlerweile bevorzuge...)

      Code:
      <html>
      <body>
      
      <select id="myId" name="test">
      	<option value="none">--- bitte wählen ---</option>
      	<option value="key1">value1</option>
      	<option value="key2">value2</option>
      </select>
      
      <script type="text/javascript">
      function MyClass (id) {
      	
      	this.elmObj = document.getElementById(id);
      	
      	this.elmObj.onchange = function () {
      		alert (this.options[this.selectedIndex].value);
      	}
      }
      
      oMyClass = new MyClass("myId");
      
      </script>
      
      </body>
      </html>
      hab jetzt leider gerade keinen Firefox/mozilla, getestet im IE (sollte aber cross-browser sein)

      gruss

      Kommentar


      • #4
        Original geschrieben von MoRtAlAn
        mh... man kann die EventHandler auch dynamisch setzen (was ich mitlerweile bevorzuge...)
        Klar kann man, aber ich sehe i.M. keinen wirklichen Sinn für deren Einsatz

        Kommentar


        • #5
          bei dem Beispiel, dass ich gepostet habe macht es auch nicht wirklich Sinn... Bei excessivem Einsatz von Javascript hat es durchaus Vorteile, wenn sich die Objekte selber um alles kümmern.

          Beispiel:
          du bietest in einem Formular mehrere Selektboxen an, die per RemoteScripting gefüllt werden. Der Ausgewählte Wert oder der Default sind vorgefüllt, aller anderen werden onmouseover nachgeladen...

          muss halt nur noch

          <select id="id" name="name">
          <option value="wert">Text</option>
          </select>

          schreiben...

          muss halt jetzt nur noch

          var dc1 = new DynComboBox('id');
          ... und so weiter machen...

          warum:
          1) ich bin faul
          2) bei komplexen Anwendungen die die Logik ins Frontend legen, ist es imho(!!) einfach bequemer...
          3) bei entsprechenden Formularen reduziert sich der Code

          gruss

          Kommentar

          Lädt...
          X