[JavaScript] Parameter aus Funktionsaufruf in Objektbezeichner benutzen!?

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

  • [JavaScript] Parameter aus Funktionsaufruf in Objektbezeichner benutzen!?

    Mein Problem ist folgendes...

    Ich setze dieses Script ein, um die noch verfügbaren Zeichen bei einer Formulareingabe anzuzeigen:


    PHP-Code:
    function CountMaxChars()
                {
                    
    max 45;
                    
    wert max document.Form.f_sm_aktuell_text1.value.length;
                    if (
    wert 0)
                    {
                        
    alert("Es können nicht mehr als " max " Zeichen angezeigt werden!");
                        
    document.Form.f_sm_aktuell_text1.value document.Form.f_sm_aktuell_text1.value.substring(0,max);
                        
    wert max-document.Form.f_sm_aktuell_text1.value.length;
                    }
                    else
                    {
                        
    wert max document.Form.f_sm_aktuell_text1.value.length;
                    }

                        
    //if(document.all)
                                
    document.all.AnzahlFreiZeichen1.innerHTML wert;
                        
    /*else if(document.layers)
                        {
                                document.AnzahlFreiZeichen.document.open();
                                document.AnzahlFreiZeichen.document.write(wert);
                                document.AnzahlFreiZeichen.document.close();
                        }
                        */
                    
                

    Dieses Script funktioniert auch wie gewünscht. Jetzt kommen wir aber zum eigentlichen Punkt. Das Formular wird über eine PHP Funktion aufgebaut. Dabei werden verschiedene Felder generiert, die ggf. auch verschiedene Max. Zeichen beinhalten können.

    Ich übergebe deshalb aus PHP heraus beim Aufruf mehrere Parameter:

    PHP-Code:
    onkeydown=CountMaxChars(45"f_sm_aktuell_text'.$i.'"
    Zwar beschäftige ich mich schon lange mit PHP/MySQL und ActionScript(Flash) - aber JavaScript konnte ich bislang immer vermeiden

    Das Problem liegt in folgender Zeile:

    PHP-Code:
    wert max document.Form.f_sm_aktuell_text1.value.length
    hier muß ja jetzt "f_sm_aktuell_text1" durch den Wert ersetzt werden, den ich beim Aufruf übergebe.

    Die Funktion habe ich wie folgt geändert:

    PHP-Code:
    function CountMaxChars(zaehlerfeld) {
    {
                    
    max zaehler
    Wie muß ich jetzt den Parameter "feld" in die folgende Zeile einbinden, damit auf das Objekt zugegriffen werden kann!?

    PHP-Code:
    wert max document.Form.feld.value.length
    Cheers
    Andreas

  • #2
    übergibt im onClick-Event das Element selbst, indem du this rein schreibst:

    ... onClick="Bla(this,...);" ...

    in der Funktion dann ganz normal verwenden:

    function Bla(elem,para) {

    var max = para - elem.value.length;
    ...
    }

    Kommentar


    • #3
      Super klasse...

      ...hätte man glatt selbst drauf kommen können - DANKE...

      Also... gezählt wirf fein - auch in den entsprechenden Feldern.

      Das gleiche Problem stellt sich jetzt natürlich bei der Aktualisierung der Ausgabe:

      PHP-Code:
      //if(document.all)
                                  
      document.all.AnzahlFreiZeichen1.innerHTML wert
      Hier muß natürlich auch bei "AnzahlFreiZeichen1" hochgezählt werden ...

      Ich habe das jetzt gelöst, indem ich als dritten parameter einfach den kompletten Pfad zu dem Element angegeben habe (äquivalent zu "this" sozusagen)


      PHP-Code:
      onchange=CountMaxChars(45,this,document.all.AnzahlFreiZeichen'.$i.'
      Vielleicht nicht schön - aber es funktioniert

      Ideal wäre natürlich noch, wenn beim Aufruf des Formular alle Werte gemäß der aktuellen Länge aktualisiert würden... aber das ist nebensächlich.
      Cheers
      Andreas

      Kommentar


      • #4
        Original geschrieben von DORAGON

        Ideal wäre natürlich noch, wenn beim Aufruf des Formular alle Werte
        gemäß der aktuellen Länge aktualisiert würden... aber das ist nebensächlich.
        dann machst doch, das kannste php-seitig implementieren.

        Kommentar

        Lädt...
        X