porno porno izle rokettube
Ergebnis 1 bis 5 von 5

Thema: aus () wird ()

  1. #1
    Neuer Benutzer
    Registriert seit
    20.09.2016
    Beiträge
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Ausrufezeichen aus () wird ()

    Liebe Community,


    ich habe das Problem, dass ich Formularelemente via Factory in einer Zend\Form\Form erzeuge.


    Dabei setze ich das Attribut:
    Code:
    'attributes' => array(
        'onChange' => "this.form.submit()"
    )

    Im HTML Code wurd daraus aber

    HTML-Code:
    onchange="this.form.submit()"

    Geplant ist es, dass daraus
    HTML-Code:
    onchange="this.form.submit()"
    wird.


    Habt ihr eine Idee, wie ich das umsetzen kann?

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.447
    Thanks
    3
    Thanked 346 Times in 277 Posts

    Standard

    Zitat Zitat von ijisthee Beitrag anzeigen
    Code:
    'attributes' => array(
        'onChange' => "this.form.submit()"
    )
    In HTML5 ist es nur „onchange“.


    Zitat Zitat von ijisthee Beitrag anzeigen
    Habt ihr eine Idee, wie ich das umsetzen kann?
    Den Form-View-Helfer einfach nicht verwenden, denn Attribute laufen immer durch einen Escaper.

    Oder pures JavaScript verwenden. Im View-Skript zum Beispiel:
    PHP-Code:
    <?php
    $this
    ->inlineScript()->captureStart();
    echo <<<JS
    (function () {
        var form = document.querySelector('form');
        form.addEventListener('change', function(){
            this.submit();
        });
    })();
    JS;
    $this->inlineScript()->captureEnd();
    ?>
    Und in deinem Layout-Skript:
    PHP-Code:
    <?= $this->inlineScript() ?>
    </body>
    </html>
    Geändert von Kaiuwe (12.10.2016 um 18:41 Uhr)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Neuer Benutzer
    Registriert seit
    20.09.2016
    Beiträge
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi Kaiuwe,

    danke für deine Hilfe.

    Ich habe mich für die JS Variante entschieden. und es ein wenig abgeändert:

    PHP-Code:
    $this->inlineScript()->captureStart();
    echo <<<JS
    (function () {
        var form = document.getElementById('form');
        form.addEventListener('change', function(){
            this.submit();
        });
    })();
    JS;
    $this->inlineScript()->captureEnd(); 
    Im Quellcode steht dann:

    HTML-Code:
    <script type="text/javascript">
        //<!--
        (function () {
           var form = document.getElementById('monitoring_filter_form');
           form.addEventListener('change', function(){
               this.submit();
           });
       })();
        //-->
    </script>
    Soweit so gut.
    Die Aktion wird auch ausgelöst und ein

    HTML-Code:
    console.log(this)
    zeigt mir das aktuelle Formular an.
    Allerdings, wirft
    HTML-Code:
    this.submit()
    folgenden Fehler:
    Code:
    Uncaught TypeError: this.submit is not a function

  4. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.447
    Thanks
    3
    Thanked 346 Times in 277 Posts

    Standard

    Zitat Zitat von ijisthee Beitrag anzeigen
    Ich habe mich für die JS Variante entschieden. und es ein wenig abgeändert:
    Es hätte auch gereicht:
    Code:
    var form = document.querySelector('#form');
    Zitat Zitat von ijisthee Beitrag anzeigen
    Code:
    Uncaught TypeError: this.submit is not a function
    Das Problem liegt in deiner Namensgebung, denn du hast bestimmt deiner Schaltfläche zum Absenden den Namen oder die ID „submit“ gegeben. Einfach umbenennen.

    Kannst du der Schaltfläche keinen anderen Namen geben, dann hilft auch „call“ oder „apply
    Code:
    document.createElement('form').submit.call(document.querySelector('#form'));
    (Übrigens ergibt es nicht viel Sinn, wenn man den Elementnamen für das ID-Attribut oder als Klassennamen oder eigentlichen Namen verwendet.)
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  5. #5
    Neuer Benutzer
    Registriert seit
    20.09.2016
    Beiträge
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hallo Kaiuwe,

    es lag tatsächlich am Namen des Submit Buttons. Der hieß nämlich Submit. Nun ergibt das auch Sinn.
    Es funktioniert einwandfrei sowohl mit
    Code:
    var form = document.getElementById('monitoring_filter_form');
    als auch mit
    Code:
    var form = document.querySelector('#monitoring_filter_form');
    Zitat Zitat von Kaiuwe Beitrag anzeigen
    (Übrigens ergibt es nicht viel Sinn, wenn man den Elementnamen für das ID-Attribut oder als Klassennamen oder eigentlichen Namen verwendet.)
    Das ist richtig, ich habe den Namen nur hier im Forum geändert.
    Tatsächlich heißt das Formular so, dass es beschreibt, was es macht.

    Vielen Dank und liebe Grüße
    Christian

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 28.11.2011, 14:27
  2. ZF & Dojo & Zend_Dojo_Select
    Von maject im Forum Javascript + RIA
    Antworten: 9
    Letzter Beitrag: 24.03.2011, 14:22
  3. Hilfe bei Konzept: Seiten & Layout aus DB
    Von surfspot.de im Forum Konzepte & Ideen
    Antworten: 1
    Letzter Beitrag: 04.11.2009, 17:48
  4. robots.txt & Zend Framework & ACL
    Von Innocentus im Forum Einsteigerfragen
    Antworten: 4
    Letzter Beitrag: 08.09.2009, 20:59
  5. Zend_Locale && Zend_Currency Problem Internet Explorer
    Von PeHaPe im Forum Lokalisierung & Internationalisierung
    Antworten: 12
    Letzter Beitrag: 27.05.2009, 17:05

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •