微信小程序能够经过收集用户的formid,获取formid给用户主动推送微信消息。获取formid有两个途径,一个是触发一次表单提交,或者触发一次支付行为。若是要给用户主动推送模板消息,就须要拿到足够多的formid。javascript
用表单的方法必定须要绑定bindsubmit,button的form-type设置为submit,在js代码中能够经过e.detail.formId
获取formId。css
实例:html
<form bindsubmit="submit" report-submit='true' class='formid'> <button form-type="submit"></button> </form>
submit: function (e) { console.log(e.detail.formId); }
若是没有点击事件,能够把button设置为透明的,在每一处点击均可以收集formIdjava
若是想同时触发formid和点击事件,能够采用以下方法:web
一、在点击事件的外层套上form和button,可是须要修改button的默认样式,至关于在外面套一层透明的蒙版。小程序
二、直接用button绑定点击事件,把要触发的函数写入。微信小程序
三、在点击事件内嵌套form和button,也须要修改button的默认样式。微信
这是button的默认样式:函数
button { position:relative; display:block; margin-left:auto; margin-right:auto; padding-left:14px; padding-right:14px; box-sizing:border-box; font-size:18px; text-align:center; text-decoration:none; line-height:2.55555556; border-radius:5px;/*能够改为0,去除圆角*/ -webkit-tap-highlight-color:transparent; overflow:hidden; color:#000000; background-color:#F8F8F8;/*按钮默认背景色是灰色的,能够把值改成#fff白色*/ }
去除button的边框:使用::after
伪类选择器,由于button的边框样式是经过::after
方式实现的,若是在button上定义边框就会出现两条边框线,因此咱们可使用::after
的方式去覆盖默认值。spa
button::after { border: none; }
button::after{ border: none; }