2

我正在使用framework7.io。我正在使用他们的框架事件和功能,但onclick事件未与他们的页面事件pageInit绑定。

我正在尝试访问表单数据并将其转换为 json formTOJSON,如下所示。

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

4

1 回答 1

4

实际上,您的代码中的绑定似乎很好。
将 formToJSON 代码保留在 click 事件句柄块中试试这个:

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

因为当 PageInit 发生时,根据您的代码,您的 queryForm 变量为空。填写表单后,您想要获取值。所以请保留在 click 事件处理程序中。希望这可以帮助。

于 2016-06-21T07:14:44.747 回答