收藏
回答

输入框blur事件与按钮click事件的先后顺序问题?

页面上有一个 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年的帖子,是类似问题,没有解答

https://developers.weixin.qq.com/community/develop/doc/6ad9de49551036896daad16805b25ac2?_at=1655002302927

最后一次编辑于  2022-06-12
回答关注问题邀请回答
收藏

3 个回答

登录 后发表内容