input 输入框中文,监听的input事件 屏蔽拼音状态

本文详细介绍了如何优化网页表单中讲师姓名字段的拼音输入体验,通过设置标志位避免了高频数据库请求,并解决了拼音选词结束后触发事件的延迟问题。此外,还分享了监控input输入框粘贴和实时填写数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.当输入讲师姓名,显示对应讲师的相关的信息,但是拼音输入过程中会高频请求后台数据库

 

2.于是乎,就想着屏蔽这些拼音阶段,代码如下:

<script type="text/javascript">
	var cpLock = true;
	$('#teacherName').on('compositionstart', function () {
		cpLock = false;
	});
	$('#teacherName').on('compositionend', function () {
		cpLock = true;
	});
	$('body').on('input', '#teacherName', function () {
       
            if(cpLock) {
                if (cpLock) {
                    // TODO
                    console.log("=======teachername=========" + $("#teacherName").val());
                }
            }
     
	});
</script>

3.控制可以,但是总要在输入一次空格才能触发,很纳闷,后来发现,少了东西

<script type="text/javascript">
	var cpLock = true;
	$('#teacherName').on('compositionstart', function () {
		cpLock = false;
	});
	$('#teacherName').on('compositionend', function () {
		cpLock = true;
	});
	$('body').on('input', '#teacherName', function () {
        setTimeout(function(){
            if(cpLock) {
                if (cpLock) {
                    // TODO
                    console.log("=======teachername=========" + $("#teacherName").val());
                }
            }
        },1)
	});
</script>

4.原来我的小心机

//为解决拼音输入时还未确认汉字,英文字母就触发事件,设置flag,只有flag为true时输入有效
//因为选词结束的时候input会比compositionend先一步触发,此时flag还未调整为true,所以加入setTimeout延时

 

补充一个:

实现监控input输入框的粘贴和实时的填写数据,其中updateMediaInfo为需要调用的函数

window.onload = function() {
                
    document.getElementById('videoUrl').addEventListener('input',updateMediaInfo,false);
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值