学无先后,达者为师

网站首页 前端文档 正文

js 禁用输入法(伪) / keydown返回false仍然可以输入的问题

作者:三橘泽 更新时间: 2022-02-22 前端文档

让 输入法 输入的文字进入不到input中, 曲线救国

  • 本文使用 compositionstart:输入法输入开始事件, compositionend:输入结束事件, 来将输入法输入的文字丢弃, 达到禁用输入法的目的

下文是代码:

 var timeVal = ""
 $("input").on("keydown",function () {
 			   //禁止输入文字
	           return false
         }).on("compositionstart", function (e) {
         	   //输入开始时,将原本的值记录下来
               timeVal = $(this).val();
         }).on("compositionend", function (e) {
         	   //输入结束时,将input重新赋值
               $(this).val(timeVal);
		 });
  • 发现输入法能绕开keydown事件, 就想着禁用输入法, 又发现没法禁止输入法,就这样写了.
  • 为什么不直接用disable属性给input呢? 因为使用该属性, input身上的其他事件都会失效, "click"等
  • 很多文章都提到了在 input 上使用 "style=“ime-mode:disabled”, 但是这种方式又不兼容谷歌, 这不是白说吗…

原文链接:https://blog.csdn.net/wwyyzz1997/article/details/113184317

栏目分类
最近更新