在最近的小程序项目中,使用到了 <web-view></web-view> 内嵌 H5 页面,在 H5 中需要使用 form 表单提交数据。

H5 使用的技术框架是 vue+vuex,刚开始编码如下:

//form表单,v-model绑定数据
<form :action="url" ref="setForm" method="post">
<input type="hidden" v-model="id" name="id">
<input type="hidden" v-model="code" name="code">
<input type="hidden" v-model="dta" name="dta">
</form> //接口内提交表单数据
let form = this.$refs.setForm;
this.id = res.data.id;
this.code = res.data.code;
this.dta = res.data.data;
form.submit(); 

联调发现这样写,v-model 内的参数没有赋值。亲测以下两种方法都可以拿到值:

解决方法1:v-model 结合延时处理

//接口内提交表单数据
let form = this.$refs.setForm;
this.id = res.data.id;
this.code = res.data.code;
this.dta = res.data.data;
setTimeout(function(){
form.submit();
},500);

解决方法2:使用 document 创建元素

//form表单
<form :action="url" ref="setForm" method="post">
</form> //接口内提交表单数据
let form = this.$refs.setForm; arr = [{
name: 'id',
val: res.data.id
},
{
name: 'code',
val: res.data.code
},
{
name: 'dta',
val: res.data.data
}]; for(let p in arr) {
let input = document.createElement('input');
input.setAttribute('name': arr[p].name);
input.setAttribute('code': arr[p].code);
input.setAttribute('dta': arr[p].data);
input.setAttribute('type': 'hidden');
} form.submit();

  

这样写在 H5 中访问是没有问题的,但是当在小程序的环境中访问时问题来了:form-data 里根本没有数据!

原因在于:web-view 与 form-data 不能同时使用。

解决方法:改为 get ,亲测可行。(可以修改 form 的 enctype 为 application/x-www-form-urlencoded 试一下,不过这种方法还未验证)

//form表单
<form :action="url" ref="setForm" method="get">
</form>  

小程序 <web-view></web-view> 中使用 form 表单提交的更多相关文章

  1. 微信小程序--问题汇总及详解之form表单

    附上微信小程序开发文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html form表单: 当点击 <form/> ...

  2. SpringMVC中前端Form表单提交后跳转不过去的问题

    今天晚上打算谢谢Spring整合这个内容,写的差不多之后运行 出现了各种问题 逐一排查 首先有一个(MyEclipse10) 一: class path resource [spring-mvc.xm ...

  3. 2017-01-11小程序form表单提交

    小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...

  4. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  5. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  6. SpringMVC中使用bean来接收form表单提交的参数时的注意点

    这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...

  7. Javascript中的Form表单知识点总结

    Javascript中的Form表单知识点总结 在HTML中,表单是由form元素来表示的,但是在javascript中,表单则由HTMLFormElement类型,此元素继承了HTMLElement ...

  8. javaWeb 中前端Form表单数据处理(手动拼json)

    在前端我们会用到最多的就是form表单提交数据,在form表单中有很多都是自动将数据传到后台,然后通过实体来接受的,但是有的时候我们就是需要在前端就拿到这个Form表单的数据,这是我们就可以自己讲数据 ...

  9. springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

    springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal ...

随机推荐

  1. Core官方DI解析(2)-ServiceProvider

    ServiceProvider ServiceProvider是我们用来获取服务实例对象的类型,它也是一个特别简单的类型,因为这个类型本身并没有做什么,其实以一种代理模式,其核心功能全部都在IServ ...

  2. springIOC原理加载过程

    关于spring ,我以前学过很多次,也看过很多的书.以及博客,但是总是不得要领,这次我再学习一遍,在这里做点记录,如果不对的地方还请大家指正 Ioc: inverse of controller 控 ...

  3. openstack第五章:cinder

    第五篇cinder— 存储服务   一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接 ...

  4. 记录一次无厘头的粗心失误——java后台报错:Unknown column 'xxx' in 'field list'

    原因: sql文件马虎,直接用错了仓库.用的不是程序调用的仓库.而自己pojo和mapper还是采用Mybatis的逆向工程生成的.当时搞得很无厘头. 解决方案: sql用到程序指定的仓库就行啦. 总 ...

  5. 微信小程序-表单笔记

    发布页——向云端数据库上传多行文字和4张图片 第6,8行注释掉和不注释掉都可以实现数据上传 var _this = this; wx.cloud.callFunction({ name: 'searc ...

  6. Python测试模块doctest

    面试被问到了却没有用过,很尴尬:今天看了一下,真的是一个很简单的测试模块 方便起见,这里直接拿菜鸟教程的介绍和例子过来 开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试 ...

  7. AngularJS路由变化 监听方法

    #使用AngularJS时,当路由发生改变时,我们需要做某些处理,此时可以监听路由事件,常用的是$routeStartChange, $routeChangeSuccess ##使用场景:在路由配置文 ...

  8. MySQL函数--(1)

    /*函数与存储过程的区别1.存储过程:可以有0个返回值,可以有多个返回值函数:有且仅有一个返回值*/ #创建语法create FUNCTION 函数名(参数列表) return 返回类型BEGIN函数 ...

  9. kettle变量(var变量)

    设置变量/set varibale 1.定义变量(子转换): 原始数据 设置获取变量:点击获取字段,自动获取变量名称和字段名称 引用变量: 输出: kettle.properties 文件存储在.ke ...

  10. windows编程 进程的创建销毁和分析

    Windows程序设计:进程 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,在Windows编程环境下,主要由两大元素组成: • 一个是操作系统用来管理进程的内核对象.操作系统使用内 ...