我正在使用framework7.io。我正在使用他们的框架事件和功能,但 onclick 事件未与其页面事件 pageInit 绑定。
我尝试访问表单数据并使用formTOJSON
将其转换为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)。
答案 0 :(得分:3)
实际上,你的代码中的绑定似乎很好 将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事件处理程序中。 希望这会有所帮助。