要在输入完整中文后触发 input 事件,而不是在每输入一个字母时触发,你可以使用 JavaScript 和 HTML 的一些技巧来实现。一种常见的方法是监听 compositionend 事件,因为在输入中文时,浏览器会触发 compositionstart 事件表示开始输入,然后在输入完毕后触发 compositionend 事件,你可以在 compositionend 事件中处理输入的内容,通过变量来判断当前是否正在用中文输入,示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>监听输入完整中文</title>
</head>
<body>
<input type="text" id="chineseInput">
<script>
var iscompositioninput=false;
var chineseInput = document.getElementById('chineseInput');
chineseInput.addEventListener('compositionstart', function (e) {
// 在 compositionend 事件中处理输入的内容
iscompositioninput=true;
console.log('开始中文输入: ' );
});
chineseInput.addEventListener('compositionend', function (e) {
// 在 compositionend 事件中处理输入的内容
var inputValue = e.target.value;
iscompositioninput=false;
console.log('输入完整中文: ' + inputValue);
});
// 如果需要在每次输入字符时触发 input 事件,可以同时监听 input 事件
chineseInput.addEventListener('input', function (e) {
if(!iscompositioninput){
// 在 input 事件中处理输入的内容
var inputValue = e.target.value;
console.log('输入字符: ' + inputValue);
}
});
</script>
</body>
</html> 网友回复


