jQuery keyup() 和中文/日文/韩文输入

标签 jquery cjk keyup

我在文本框上使用 keyup() 事件,该事件将 AJAX 请求发送到 php 文件。输入通常为中文/韩文/日文文本。问题是这些语言的输入法基于拉丁语,然后你按一个数字,它会将其转换为字符。例如,

enter image description here

尽管拉丁文根本没有显示在文本框中,但每个字母都是作为 AJAX 请求发送的,因此它必须存在,但“不可见”或其他什么。例如,如果我输入“ni hao”,以下内容将作为请求发送:

  1. n
  2. 你哈
  3. 你好
  4. 你好

尽管只有你好曾显示在文本框中。这会导致大量浪费的 AJAX 查询,那么我该如何将查询限制为仅中文字符呢?

最佳答案

这确实不优雅,但也许你可以检查最后输入的字符的字符代码,看看它是否高于英文字符的字符代码(通常是60-100):

 $('textarea').on('keyup',function(e) {
    var value = $(this).val(),
        length = value.length,
        lastChar = value.substring(length-1, length),
        charCode = lastChar.charCodeAt(0);

    if (charCode > 200) {
        // $.ajax()  
    }
});

关于jQuery keyup() 和中文/日文/韩文输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005463/

相关文章:

javascript - 提交处理程序仅在第二次尝试时起作用

php - 当 ajax 开始在后台运行时显示加载图像

python - 哪种编码?由波浪号 ~ 和花括号 {} 括起来的字符串

Windows 输入法 : custom Korean virtual keyboard

jquery - ajax 调用 keyup()

angular - `(keyup.backspace)` 无法捕获 'shift + backspace'

jquery - 如何在条件查询中的类之间淡入淡出

javascript - 在此 PHP 站点中找不到更改超全局变量的位置

qt - 为什么我的 QML CJK 文本呈现损坏的字形?

c# - 控制键的 ListView KeyUp 错误