Parameterübergabe in Funktion an getElementbyID

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

  • 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');">

    Comment


    • #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

      Comment


      • #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

        Comment


        • #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

          Comment

          Working...
          X