让前端飞

专研精神是技术人员成长的源动力

2018-01-09  本文已影响28人  梦中人在梦中

  前几天,项目中的开发人员向研发组提交了这样一个问题,发现在PC中使用搜狗输入法时,输入完成敲击回车按钮无法触发输入框的查询事件。同样,另外一个组件在IOS系统中,使用IOS原生的输入法也存在该问题。

  针对该问题我跟踪了一下,发现当使用搜狗输入法时,光标虽然在input框里,但是输入的内容却在输入法提供的浮动窗口中,输入结束,敲击空格或回车,此时才把输入的内容放入input框中。

  查看了该组件的实现代码,发现该组件是监听的keyup事件,以及监听了input的回车事件来实现输入完成后的自动查询。经过分析,使用搜狗输入法输入时,由于输入法有自己的弹出框,所有事件均在这个弹出框上,输入完成敲击回车或空格时同样也是,所以无法触发组件的input框事件。对于此种情况,考虑给input框绑定onchange事件来解决该问题,但是onchange事件必须要input框失去焦点才会触发。由此看起来,似乎已经没有什么好的解决办法了,于是乎就考虑到能否在input的输入框里加一个小的查询按钮来解决该问题。

  我把该分析过程以及产品组这边暂定的解决方案告诉了相关技术人员,让他们等候产品组这边的组件更新。本来想着这件事就告一段落,他们只需要等着产品组这边的更新即可了。但是,到了第二天下午,我收到一个amazing的消息,发现该问题的开发人员告诉我说已经自行解决了该问题,并且在产品组提供的组件上修改完成并做了有效性验证!让我这边再去看一下那样修改是否合适!

  最终是解决方案是使用HTML5的oninput与IE专属的onpropertychange来解决该问题。这篇帖子已经阐述得很详细了,这里就不在详细描述了。

在这里:http://www.cnblogs.com/lhb25/archive/2012/11/30/oninput-and-onpropertychange-event-for-input.html

对于这件事有如下几点感想:

上一篇 下一篇

猜你喜欢

热点阅读