要在输入完整中文后触发 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>
网友回复