2016-06-20 2 views
1

framework7.io을 사용하고 있습니다. 해당 프레임 워크 이벤트 및 기능을 사용하고 있지만 onclick 이벤트는 해당 페이지 이벤트 pageInit과 바인딩되지 않습니다.프레임 워크 7 onclick 이벤트 바인드가 작동하지 않습니다.

양식 데이터에 액세스하고 아래 그림과 같이 을 사용하여 json으로 변환하려고합니다.

JS 부

//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 부분

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

동일한 코드가 다른 페이지로드 위해 작동 (비 AJAX).

답변

3

실제로 바인딩이 코드에서 잘된 것처럼 보입니다.
클릭 이벤트 핸들 블록 내부 formToJSON 코드를 유지 이것을 시도 :

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

을 PageInit이 queryForm 변수는 당신이 얻을 할 양식을 작성하여 code.After에 따라 비어 일어나는 경우 때문에 value.So 클릭 내부에 유지 이벤트 핸들러. 희망이 도움이됩니다.

+0

하나 더 문제가 있습니다. 'pageinit'은 페이지로드시 두 번 호출됩니다. –

+1

실제로 문서에서 onPageInit을 호출하므로 먼저 전체 문서가로드 될 때 호출하고 실제로 뷰에서로드 할 때 호출합니다. this ~ app.onPageInit ('about', function (page) {// 여기 코드})를 사용할 수 있습니다. // about은 귀하의 데이터 - 페이지 속성입니다. – Mahen