H5移动端Input注意事项

868 阅读1分钟

1. onBlur事件

处理清空事件时,在右侧添加一个绝对定位元素,用于触发清空事件。

另外需要失去焦点时隐藏清空按钮。

onBlur={/***清空****/}

然后发现不管清空按钮的zIndex多高,都只能触发blur事件,清空按钮的点击事件永远不会触发。取消调Blur事件就可以触发。

后来想到了小程序原生的表单具有穿透作用。React中使用input也是原生表单,所以同样。所以不管zIndex如何设置,input的事件优先级最高。

先触发blur事件,此时清除按钮showClear ? <img src={../XXX/clear} /> : null单击事件找不到对应的元素,则不会触发。

想要触发有两种方式:

1)隐藏按钮时使用visibility: !showClear ? 'hidden': 'visible'

2)  隐藏按钮时使用display:  !showClear ? 'none' : 'block'

  1. Blur事件使用异步触发:

    onBlur = { () => setTimeout(() => { /*清空/ }) }