我正在尝试实现按键功能,这将在用户点击时删除div Esc
.这适用于Firefox和IE,代码如下:
$("body").keypress(function(e) {
alert("any key pressed");
if (e.keyCode == 27) {
alert("escape pressed");
}
});
Run Code Online (Sandbox Code Playgroud)
如果我按任意键,alert
则会显示第一个键,如果我按Escape 键,则会显示第二个键alert
.
但这不适用于Chrome.alert
如果我按下任何一个字母键,则会始终显示第一个,但是当我点击Escape,Tab,Space或任何数字时,则不会显示第一个.
为什么会这样?有没有办法让Chrome响应这些按键?
当您按下EnterHTML中的任何位置时,form
它会触发它action
,这相当于按下submit
按钮.如何制作一个窗口,当我按 Enter任何地方时会触发事件?
我正在尝试在我正在制作的网站上创建快捷方式.我知道我可以这样做:
if(e.which == 17) isCtrl=true;
if(e.which == 83 && isCtrl == true) {
alert('CTRL+S COMBO WAS PRESSED!')
//run code for CTRL+S -- ie, save!
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
但下面的示例更容易,代码更少,但它不是组合键按压事件:
$(document).keypress("c",function() {
alert("Just C was pressed..");
});
Run Code Online (Sandbox Code Playgroud)
所以我想知道如果通过使用第二个例子,我可以做类似的事情:
$(document).keypress("ctrl+c",function() {
alert("Ctrl+C was pressed!!");
});
Run Code Online (Sandbox Code Playgroud)
这可能吗?我试过了它并没有用,我做错了什么.
我对keypress,keydown和keyup的各种行为感到困惑.似乎我错过了一个重要的文档,一个解释了这个三重奏的细微之处和细微差别.有人可以帮我弄清楚我需要阅读哪个文件才能更有效地使用这些事件吗?如果您需要详细信息,请参阅下文.
@ov:你让我展示一些代码,但这并不是我试图解决的代码中的特定问题.我正在尝试处理这些事件处理程序的行为,并要求了解它们的人指出一个好的文档.
我使用jQuery构建输入表单并将其插入到我的文档中.它工作得很好,大多数情况下.我希望表单像我在其中看到的大多数其他输入表单一样响应键盘:esc键应该忽略表单与单击取消按钮相同,并且因为表单上有一个<textarea>
,cmd+ enter应该与单击时相同确定按钮.使用按键事件似乎很简单.问题是Chrome不会为密钥或+ 调用我的按键处理程序.它会激发+ 和+ 以及字母数字,但不是+ .esccmdenterctrlenteroptionentercmdenter
所以我会改用密钥.我得到KEYUP了esc,和KEYUP的cmd,和KEYUP的enter,伟大的.但我没有得到KEYUP了enter,而我按住键cmd.
第三次是魅力,你可能会认为keydown似乎工作,但有了keydown,你会得到重复键.我知道,你所要做的就是在第一次调用时解除处理程序的绑定,但三种不同的事件类型表现得如此不同似乎很奇怪.为什么是这样?那里有一个明显的文件,我显然还没读过吗?
在我的HTML页面中,我有一个文本框供用户输入搜索关键字.当他们单击搜索按钮时,JavaScript函数将生成一个URL并在新窗口中运行.
当用户通过鼠标单击搜索按钮时,JavaScript函数可正常工作,但当用户按下ENTER键时没有响应.
function searching(){
var keywordsStr = document.getElementById('keywords').value;
var cmd ="http://XXX/advancedsearch_result.asp?language=ENG&+"+ encodeURI(keywordsStr) + "&x=11&y=4";
window.location = cmd;
}
Run Code Online (Sandbox Code Playgroud) 我有这个 …
$(document).keypress(function(e) {
if ( e.keyCode === 119 ) // w
doSomething();
});
Run Code Online (Sandbox Code Playgroud)
在我的文件上按"w"时,该doSomething()
功能会激活.当我正在input
现场打字(聚焦)时,如何防止它被触发textarea
?
我需要使用Selenium WebDriver 按Ctrl+ A键.有什么办法吗?我检查了Selenium库,发现Selenium只允许按下特殊键和功能键.
我需要使datagridview只接受keypress事件中特定列的数值.有没有最好的办法呢?
我有以下代码,当用户在文本框中键入时,我想用它来搜索数据库.下面的代码工作正常,但似乎有点低效,就好像用户打字速度非常快.我可能会进行比必要更多的搜索.因此,如果用户输入"航行",我正在搜索"帆","赛丽","赛林"和"帆船".
我想看看是否有办法检测按键之间的任何特定时间,因此只搜索用户是否停止输入500毫秒或类似的东西.
这样的事情有最好的做法吗?
$('#searchString').keypress(function(e) {
if (e.keyCode == 13) {
var url = '/Tracker/Search/' + $("#searchString").val();
$.get(url, function(data) {
$('div#results').html(data);
$('#results').show();
});
}
else {
var existingString = $("#searchString").val();
if (existingString.length > 2) {
var url = '/Tracker/Search/' + existingString;
$.get(url, function(data) {
$('div#results').html(data);
$('#results').show();
});
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以结合使用按键的混合物来发射单个事件?
$(document).keyup(function(e){
if (e.keyCode == 68 && e.keyCode == 69 && e.keyCode == 86) {
alert('oh hai');
}
});
Run Code Online (Sandbox Code Playgroud)
我在Chrome中尝试过,但事件并未触发.
叫我疯了,但我正在编写一个Chrome扩展程序,并希望将D+ E+ V键一起推送到隐藏的开发人员模式.
keypress ×10
jquery ×6
javascript ×3
keydown ×2
ajax ×1
c# ×1
datagridview ×1
dom-events ×1
keyup ×1
macos ×1
onkeypress ×1
search ×1
selenium ×1
submit ×1
textbox ×1
wpf ×1