gpt4 book ai didi

javascript - 使用 event.which 验证用户是否按下空格键在 Firefox 中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 05:16:12 24 4
gpt4 key购买 nike

我想要一个脚本来验证按下的键是否是“空格键”,键码 32。我注意到 IE 使用其他函数名称。

我尝试了很多在这里和这个找到的解决方案:

event = event || window.event // IE does not pass event to the function
if(event == window.event){
code = event.keyCode;
}else{
code = event.which;
}
if(code == '32') {}

但它在 Firefox 中仍然不起作用。

我想我在 Firefox 中错误地调用了函数。查看整个脚本:

<textarea onkeydown="predicao(this);" cols="40" rows="10" id="test" onfocus="this.focus()"></textarea>
<input id="example" style="display: none;" onkeydown="javascript: insert(this);"/>

<script language="Javascript">
<!--

function predicao(objeto){
comprimento = objeto.value.length;
var antipenultimo = comprimento - 4;
var input = objeto.value.substring(antipenultimo,comprimento);
var output = "";
for(i=0; i<input.length; ++i){
if(output != "") output += ", ";
output += input.charCodeAt(i);
}
if (output == "91, 91, 103, 32"){

var preditor = document.getElementById('example');
preditor.value = '';
preditor.style.display = 'block';
preditor.focus();
preditor.select();
}
}
function insert(objeto){
event = event.which || window.event // IE does not pass event to the function
if(event == window.event){
code = event.keyCode;
}else{
code = event.charCode;
}
if(keynum == '32') {
var texto = document.getElementById('test').value;
texto += objeto.value+']]';
$('#test').focus();
document.getElementById('test').value = texto;
objeto.style.display = 'none';
}
}
$(document).ready(function(){
var data = "Ab Aco Ado Ala Mano Cata Ca Obo Olo Po Poq".split(" ");
$("#example").autocomplete(data);});
</script>

我想做的是——(我不知道名字)——文本区域内的预测帮助输入器。它使用 jQuery 自动完成。当用户在 textarea (id=test) 中键入“[[g”时,会打开一个带有自动完成功能的输入 (id=example),因此它会在“data”中搜索。当用户找到想要的数据时,他必须按空格键将数据插入文本区域,以']]'结束。但这在 Firefox 中不起作用。

(是的,我以完全错误的方式将 JavaScript 和 jQuery 用于相同的元素,因为我不太擅长这个,我会在 Firefox 工作后尝试更正它。)

最佳答案

编辑

HTML:

<textarea onkeydown="predicao(this);" cols="40" rows="10" id="test" onfocus="this.focus()"></textarea>
<input id="example" style="display: none;" onkeydown="insert(this, event);"/>

JS:

function predicao(objeto){
var comprimento = objeto.value.length;
var antipenultimo = comprimento - 4;
var input = objeto.value.substring(antipenultimo,comprimento);
var output = "";
for(var i=0; i<input.length; ++i){
if(output != "") output += ", ";
output += input.charCodeAt(i);
}
if (output == "91, 91, 103, 32"){
var preditor = document.getElementById('example');
preditor.value = '';
preditor.style.display = 'block';
preditor.focus();
preditor.select();
}
}
function insert(objeto, evt){
var e = evt || event;
var code = e.keyCode || e.which;
if(code == '32') {
var texto = document.getElementById('test').value;
texto += objeto.value+']]';
$('#test').focus();
document.getElementById('test').value = texto;
objeto.style.display = 'none';
}
}
$(document).ready(function(){
var data = "Ab Aco Ado Ala Mano Cata Ca Obo Olo Po Poq".split(" ");
$("#example").autocomplete(data);});

我在这里使用了 Alexander Kahoun 和 pimvdb 发布的内容。

关于javascript - 使用 event.which 验证用户是否按下空格键在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7051112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com