2016-06-20 11 views
1

Ich verwende framework7.io. Ich verwende ihre Rahmenereignisse und Funktionen, aber das onclick Ereignis ist nicht bind mit ihrem Seitenereignis pageInit.Framework 7 onclick Ereignisbindung funktioniert nicht

Ich versuche, auf Daten zuzugreifen und es in Json mit wie unten dargestellt zu konvertieren.

JS Teil

//on page in it if page load via ajax 
$$(document).on('pageInit', function() { 

    /*========query form=======*/ 

    var queryForm = app.formToJSON('#query-form'); 
    $$('#query-submit').on('click', function() { 
     console.log(JSON.stringify(queryForm)); 
    }); 

}); 

HTML-Teil

<form id="query-form"> 
        <div class="color-error" id="formErrorField" style="display: none;"></div> 
        <ul> 
         <li> 
          <div class="item-content"> 
           <div class="item-inner"> 
            <div class="item-input"> 
             <textarea name="question" placeholder="Type Here!"></textarea> 
            </div> 
           </div> 
          </div> 
         </li> 
        </ul> 
        <br/> 
        <a href="#" class="button button-fill" id="query-submit">Submit</a> 
       </form> 

Der gleiche Code arbeitet für eine andere Seite zu laden (Nicht-Ajax).

Antwort

3

Die Bindung scheint in Ihrem Code in Ordnung zu sein. Halten
formToJSON Code in Click-Ereignis handle Block versuchen Sie dies:

$$(document).on('pageInit', function() { 
    var queryForm = null; 
    $$('#query-submit').on('click', function() { 
    queryForm = app.formToJSON('#query-form'); 
     console.log(JSON.stringify(queryForm)); 
    }); 
}); 

Denn wenn Pageinit ist Ihre Queryform Variable leer nach Ihren code.After Füllen Sie das Formular Sie erhalten möchten geschieht value.So halten innerhalb des Klick Ereignishandler. Hoffe, das hilft.

+0

Es gibt noch ein Problem. 'paginin' hat beim Laden der Seite zweimal aufgerufen. –

+1

Eigentlich rufen Sie onPageInit auf dem Dokument auf, also Zuerst ruft es auf, wenn das ganze Dokument geladen wird, und zweitens, wenn es tatsächlich in View geladen wird. Sie können dies ~ app.onPageInit ('über', Funktion (Seite) {// Code hier}); // Über ist Ihr Datenseitenattribut. – Mahen