json Framework7格式到数据不工作

4smxwvx5  于 2022-12-24  发布在  Framework7
关注(0)|答案(4)|浏览(289)

我有一个屏幕登录在我的应用程序和获得的形式数据在框架我需要使用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提前。

4zcjmb1e

4zcjmb1e1#

他们更改了函数,而不是formToData现在是formToJSON

wooyq4lh

wooyq4lh2#

您可以使用展位:
formtoData或formToJson将返回相同的值:[对象]
只需使用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

编辑:Framework7更新到了v4,现在它是这样工作的:

Single Line: 
   var dados = JSON.stringify(myApp.form.convertToData('#my-form'));
x4shl7ld

x4shl7ld3#

他们又改变了函数,至少在V2中是这样。对我有效的新函数是:

var formData = myApp.form.convertToData("#form-id");
var formString = JSON.stringify(formData);
9avjhtql

9avjhtql4#

Framework7 convertToData正在忽略输入类型文本数组:例如:

<input type="text" name="no_invoice[]" />

删除[]也不起作用。F7只作为数组复选框/单选字段,必须解决此bug。
我解决了使用javascript:

new FormData(your_form);

相关问题