页面上有一个 input组件和一个按钮组件,分别设置了blur事件和click事件。用户操作是input里面输入文字,然后点击按钮。
wxml (用的是vant组件库)
<van-field required id="text1" value="{{ dto.text1}}" label="输入框" type="number" bind:blur="onblur" input-align="right"/>
<van-button type="info" bind:click="btnClick" size="large">确定</van-button>
ts代码
onblur(e: any) {
console.log('onblur')
},
btnClick() {
console.log('btnClick')
在IDE调试中,是先激发blur事件,再激发click事件,输出如下
onblur btnClick
而在真机调试和体验版测试中,发现激发的顺序是倒过来的,输出如下
btnClick onblur
这样,就无法实现在onblur中获取输入值,再提交数据的目的。
请教大神们,这种情况该如何处理?
我考虑过在click里面调用一个 settimeout把提交数据的代码延迟调用,但是这种方案非常丑陋。
另外搜索到一篇17年的帖子,是类似问题,没有解答
使用bindinput更新input绑定的值,这样就能避免你所描述的问题了
用这个事件绑定input值呢,bindblur正常来做数据校验好些