我正在编写一个聊天框。我输入的字符并没有按原样反射(reflect)出来。
这基本上就是我正在使用的代码。
$(document).ready(function() {
$(".entry").keydown(function(event) {
console.log(String.fromCharCode(event.which));
});
});
因此,当我键入(小写的)“a”时,控制台选项卡会显示“A”。
除非我为它创建单独的条件,否则特殊字符不会得到反射(reflect)。
有人可以帮我用一个不同的函数来完成这一切,并返回用户输入的字符串。或者采用不同的方法共同应对这一挑战。谢谢。
实际代码 - chat.js
var str='';
$(document).ready(function() {
$(".entry").keydown(function(event) {
console.log(event.which);
if (event.which === 13 && event.shiftKey === false) {
console.log(str);
event.preventDefault();
} else {
var c = event.which;
str = str.concat(String.fromCharCode(c));
}
});
});
所以基本上输入的每个字符都会连接到字符串中。然后 Enter 键会将文本转储到控制台。
最佳答案
似乎试图在 keydown
事件中获取 event.which
的值可能会导致您使用错误的 ascii 代码(您需要传递给 的内容String.fromCharCode
).
不知道合不合你的需要,你可以试试:
$(document).ready(function(){
$(".entry").keypress(function(event) {
console.log(String.fromCharCode(event.which));
});
});
(注意使用 keypress
而不是 keydown
)
编辑:添加了工作演示
var str = '';
$(document).ready(function() {
$(".entry").keypress(function(event) {
console.log(event.which);
if (event.which === 13 && event.shiftKey === false) {
console.log(str);
event.preventDefault();
} else {
var c = event.which;
str = str.concat(String.fromCharCode(event.which));
}
console.log('Formated Text', str);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="entry"></textarea>
关于javascript - Jquery:fromcharcode() 将整数转换为字符的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49143469/