我在文本框上使用 keyup() 事件,该事件将 AJAX 请求发送到 php 文件。输入通常为中文/韩文/日文文本。问题是这些语言的输入法基于拉丁语,然后你按一个数字,它会将其转换为字符。例如,
尽管拉丁文根本没有显示在文本框中,但每个字母都是作为 AJAX 请求发送的,因此它必须存在,但“不可见”或其他什么。例如,如果我输入“ni hao”,以下内容将作为请求发送:
- n
- 你
- 你
- 你哈
- 你好
- 你好
尽管只有你好曾显示在文本框中。这会导致大量浪费的 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/