- 当前 Bug 的表现(可附上截图)
button 的submit事件失效
- 预期表现
点击button应该正常触发submit事件
- 复现路径
两个连续的textarea,先输入下方的textarea,然后输入上方的textarea,ANDROID手机submit事件100%失效
- 提供一个最简复现 Demo
<form bindsubmit=“formSubmit”>
<textarea name=‘sell_address’ class=“weui-textarea” placeholder=“请输入售楼地址” />
<textarea name=‘intro’ class=“weui-textarea” placeholder=“请输入楼盘地址” />
<button formType=“submit” >保存房源</button>
</form>
Page({
data: {
},
formSubmit: function (e) {
//按照复现路径,无法触发
console.log(‘form发生了submit事件,携带数据为:’, e.detail.value)
},
})
我这里表现是iphone6 , ios 12版本表单基本不可用;
微信版本:6.3.2
现象1:即使用户正常从上往下填写表单(全是input,就4个普通输入框),点击submit提交按钮,同样不触发;但是,只需要当用户点击第二个input的时候,失去焦点,然后莫名其妙的居然就提交了,连表单按钮都不用点击;
现象2:用户正常往下填写表单,在未点击提交按钮的时候,重新对第二个input获取焦点,失去焦点,不用修改值;点击提交按钮,可以正常提交
建议一:官方给个开发人员的解决方案,官方能不能给个可以让开发人员直接绕过这个bug的方案,而不需要等官方发版,因为即使官方发新版微信版本,用户不一定会立马升级,大部分用户不会立马升级,在一部分用户手上,这个问题依然存在;所以直接办法还是开发人员绕过去才能解决问题
建议二:像提交表单这么基础的能力,为什么需要封装的那么彻底,封装的彻底可以,是不是还可以提供一个不那么彻底的办法,让开发人员可以自己去搞;例如:
<script>
function submitForm(e){
var form = new Form("#formId");
//表单数据
var formData = form.getData();
//或者可以让开发人员自己去获取表单组件的值;
var inputVal = inputControl.getValue();
wx.request({
});
}
</script>
建议三:开源表单,表单组件封装的js代码,让开发人员可以自己调试,自己解决;封装表单理论上不涉及安全性问题,进行加密保护