Javascript 除了按enter键外,jQuery按键可正常工作
如果在Javascript 除了按enter键外,jQuery按键可正常工作,javascript,jquery,Javascript,Jquery,如果在输入标记内按enter键,我希望触发单击,但在所有其他情况下,我希望使用默认事件策略。我试过这样做: $("#keywords").keypress(function(e) { if (e.charCode === 13) { $("#campus-search").click(); } else { $("#keywords").val($("#keywords").val() + String.fromCharCode(e.charCod
输入
标记内按enter键,我希望触发单击
,但在所有其他情况下,我希望使用默认事件策略。我试过这样做:
$("#keywords").keypress(function(e) {
if (e.charCode === 13) {
$("#campus-search").click();
} else {
$("#keywords").val($("#keywords").val() + String.fromCharCode(e.charCode));
}
});
它工作,但我仍然不满意,因为当我在文本的某个地方点击“代码>输入”/代码>或者按下左边的按钮,或者home按钮,然后尝试键入一些文本,它将显示在输入的末尾,这是坏的用户体验。除了按下enter键外,我是否可以保持
输入以默认方式工作?该功能不捕获非打印键,例如shift、esc、delete和enter,因此最好的方法是使用两个事件处理程序:一个用于按键
,正如您上面定义的,还有一个用于keydown
,它检查charCode
13,然后在$(#校园搜索)
上执行click()
事件(如果通过输入键)
该函数不捕获非打印键,如shift、esc、delete和enter,因此最好的方法是使用两个事件处理程序:一个用于按键
,如您上面所定义,还有一个用于keydown
,它检查charCode
13,然后在$(#校园搜索)
上执行click()
事件(如果通过输入键)
这应该行得通
$("#keywords").keypress(function(e) {
if (e.charCode === 13) {
e.preventDefault(); // prevent default action of the event if the event is keypress of enter key
$("#campus-search").click();
} else {
$("#keywords").val($("#keywords").val() + String.fromCharCode(e.charCode));
}
});
这应该行得通
$("#keywords").keypress(function(e) {
if (e.charCode === 13) {
e.preventDefault(); // prevent default action of the event if the event is keypress of enter key
$("#campus-search").click();
} else {
$("#keywords").val($("#keywords").val() + String.fromCharCode(e.charCode));
}
});
我认为您可以完全删除else
子句以获得所需的结果
看看这个。我认为您可以完全删除else
子句以获得所需的结果
看看这个。这就是你要找的:
HTML:
<input id="keywords" type="text" value="" />
<input id="campus-search" type="button" value="Campus Search" />
这就是您要寻找的:
HTML:
<input id="keywords" type="text" value="" />
<input id="campus-search" type="button" value="Campus Search" />
我想你要找的是:
$(document).ready(function () {
$("#test").keyup(function (event) {
if (event.keyCode == 13) {
$("#campus-search").click();
}
});
$("#campus-search").click(function () {
console.log("BUTTON IS CLICKED");
});
});
输入
将完全动作正常,一切都在默认
下工作,除非当您按下enter按钮(keyCode=13)时,然后按钮。click()
事件将被触发
工作小提琴:
----
#更新:问题中的代码只有一个提示,不要使用charCode
,因为它已被弃用
此功能已从Web上删除。尽管某些浏览器可能仍然支持它,但它正在被删除。不要在旧项目或新项目中使用它。使用它的网页或Web应用程序可能随时中断
(例如,charCode
不适用于FF v29.0.1)
还有一些不同但重要的事情要知道:
字符编码是在按键向下和按键向上事件中设置的从不。在这些情况下,将设置keyCode
来源:我想你要找的是:
$(document).ready(function () {
$("#test").keyup(function (event) {
if (event.keyCode == 13) {
$("#campus-search").click();
}
});
$("#campus-search").click(function () {
console.log("BUTTON IS CLICKED");
});
});
输入
将完全动作正常,一切都在默认
下工作,除非当您按下enter按钮(keyCode=13)时,然后按钮。click()
事件将被触发
工作小提琴:
----
#更新:问题中的代码只有一个提示,不要使用charCode
,因为它已被弃用
此功能已从Web上删除。尽管某些浏览器可能仍然支持它,但它正在被删除。不要在旧项目或新项目中使用它。使用它的网页或Web应用程序可能随时中断
(例如,charCode
不适用于FF v29.0.1)
还有一些不同但重要的事情要知道:
字符编码是在按键向下和按键向上事件中设置的从不。在这些情况下,将设置keyCode
来源:让我澄清一下问题:解决方案会将字符写在内容末尾,而不管您的位置如何。在输入上尝试您的事件。在输入中单击,按home按钮并键入内容。按home键后,字符将出现在文本的开头,但它会出现在字符串的末尾。所以你的解决方案并不是一种改进。你能不能让你所说的事情没有发生。如果我单击“输入”,然后按home键并键入它在开始时确实键入了..?这是一个用户事件。当您希望在文本末尾以外的地方键入时,它仍将在文本末尾键入。在$(“#关键字”).val($(“#关键字”).val()+String.fromCharCode(e.charCode))行中,您还需要什么;怎么办?这很简单:如果我们有一个“阅读问题”的文本,并且我们想在字符串的开头键入“注意时”,那么结果将是“阅读问题时注意”,这不会发生,您要在文本框开始处键入的文本将在文本框结尾处键入。让我澄清一下问题:解决方案会将字符写入内容末尾,而不管您的位置如何。在输入上尝试您的事件。在输入中单击,按home按钮并键入内容。按home键后,字符将出现在文本的开头,但它会出现在字符串的末尾。所以你的解决方案并不是一种改进。你能不能让你所说的事情没有发生。如果我单击“输入”,然后按home键并键入它在开始时确实键入了..?这是一个用户事件。当您希望在文本末尾以外的地方键入时,它仍将在文本末尾键入。在$(“#关键字”).val($(“#关键字”).val()+String.fromCharCode(e.charCode))行中,您还需要什么;怎么办?这很简单:如果我们有一个文本“readthequestion”,并且我们想在字符串的开头键入“pay attention when”,那么结果将是“pay attention when”