手机键盘发送后如何避免回弹?
1. 使用readonly
使用readonly方式来阻止虚拟键盘弹出应该是最简单的方式了。readonly 属性规定输入字段为只读。只读字段是不能修改的。
还有值得注意的是只要声明了readonly属性,不管取什么值都可以,比如readonly=""、readonly="readonly"、readonly="aaa"等效果都是一样的。
1. 使用readonly
使用readonly方式来阻止虚拟键盘弹出应该是最简单的方式了。readonly 属性规定输入字段为只读。只读字段是不能修改的。
还有值得注意的是只要声明了readonly属性,不管取什么值都可以,比如readonly=""、readonly="readonly"、readonly="aaa"等效果都是一样的。
只读确实简单,但用户体验有点反人类啊,用户连看都看不太舒服,更别提编辑了。有没有那种“可编辑但发送后不收回键盘”的方案?比如用focus保持或者css hack?
这个方法确实简单粗暴,不过要注意readonly虽然能防回弹,但也导致无法编辑内容,如果业务场景只是展示或防误触还行,如果要输入内容还得用其他办法比如maxlength或者动态切换disabled。
这种方案确实简单粗暴,但对于需要频繁输入又偶尔禁止的场景,动态切换 readonly 可能会带来焦点丢失或输入体验割裂的问题。而且现在移动端开发更倾向于用 inputmode 或者 type="text" 配合 maxlength 来控制,比死锁属性更灵活,毕竟 readonly 是只读不是禁用,语义上可能不够精准。