我在我的应用程序中有一个屏幕登录并且在框架中获取表单数据我需要使用formtoData但它不起作用,所以我决定创建另一个项目并复制粘贴框架docs脚本但仍然无法正常工作。
Index.html(测试项目)
<div class="pages navbar-through toolbar-through">
<!-- Page, "data-page" contains page name -->
<div data-page="index" class="page">
<!-- Scrollable page content -->
<div class="page-content">
<form id="my-form" class="list-block">
<ul>
<li>
<div class="item-content">
<div class="item-inner">
<div class="item-title label">Name</div>
<div class="item-input">
<input type="text" name="name" placeholder="Your name">
</div>
</div>
</div>
</li>
</ul>
</form>
<div class="content-block">
<a href="#" class="button form-to-data">Get Form Data</a>
</div>
</div>
</div>
</div>
js(测试项目)
// Initialize app
var myApp = new Framework7();
// If we need to use custom DOM library, let's save it to $$ variable:
var $$ = Dom7;
$$('.form-to-data').on('click', function(){
alert("dwdq");
var formData = myApp.formToData('#my-form');
alert(formData);
});
有谁知道为什么它不起作用? thx提前。
答案 0 :(得分:2)
他们改变了函数,而不是formToData现在是formToJSON
答案 1 :(得分:1)
您可以使用展位:
formtoData或formToJson将返回相同的值:[object Object]
只需使用JSON.stringify()
即可获得所需的结果。
$$('.form-to-data').on('click', function(){
var formData = myApp.formToData('#my-form');
var formJSON = myApp.formToJSON("#my-form");
console.log(JSON.stringify(formData));
console.log(JSON.stringify(formJSON));
});
{"name":"Alexandre"}
{"name":"Alexandre"}
或者你甚至可以像这样序列化表格:
$$('.form-to-data').on('click', function(){
var formData = $$.serializeObject(myApp.formToJSON($$("#my-form")));
console.log(formData);
});
name=Alexandre
答案 2 :(得分:0)
至少在V2中,他们再次更改了功能。适用于我的新功能是:
var formData = myApp.form.convertToData("#form-id");
var formString = JSON.stringify(formData);