使用jQuery,当我绑定到按键事件时,如何找出按下了哪个键?
$('#searchbox input').bind('keypress', function(e) {});
Run Code Online (Sandbox Code Playgroud)
我想在ENTER按下时触发提交.
[更新]
即使我发现(或者更好:一个)自己回答,似乎还有一些变异的空间;)
有没有之间的差异keyCode
和which
-尤其是如果我只是在寻找ENTER,这永远不会是一个unicode关键?
有些浏览器提供一个属性而其他浏览器提供另一个属性吗?
如何检测何时按下其中一个箭头键?我用这个来找出:
function checkKey(e) {
var event = window.event ? window.event : e;
console.log(event.keyCode)
}
Run Code Online (Sandbox Code Playgroud)
虽然它适用于所有其他键,但它没有用于箭头键(可能因为默认情况下浏览器应该在这些键上滚动).
我希望在文本框的内容发生变化时进行检测.我可以使用keyup方法,但这也会检测不生成字母的击键,如箭头键.我想到了使用keyup事件执行此操作的两种方法:
两者看起来都很麻烦.
在这种特殊情况下,当我按Enter键时,我有什么选项可以让这些输入调用一个函数?
// HTML view //
<form>
<input type="text" ng-model="name" <!-- Press ENTER and call myFunc --> />
<br />
<input type="text" ng-model="email" <!-- Press ENTER and call myFunc --> />
</form>
// Controller //
.controller('mycontroller', ['$scope',function($scope) {
$scope.name = '';
$scope.email = '';
// Function to be called when pressing ENTER
$scope.myFunc = function() {
alert('Submitted');
};
}])
Run Code Online (Sandbox Code Playgroud) 我有form
两个文本框,一个选择下拉菜单和一个单选按钮.当enter按下键时,我想调用一个javascript函数(用户定义),但是当我按下它时,表单就会被提交.
如何form
在enter按下键时阻止提交?
我已经阅读了关于这些问题的所有答案,但没有一个解决方案似乎有效.
此外,我正在获得触发按键的特殊字符的氛围根本不起作用.有人可以验证谁做了这个吗?
我正在寻找一种在Selenium中输入和输入或返回键的快捷方式.不幸的是,我试图测试的表单(不是我自己的代码,所以我无法修改)没有提交按钮.手动使用时,我只需输入ENTER或RETURN.我需要知道如何使用Selenium type
命令执行此操作,因为没有可单击的按钮.
可能重复:
Jquery:如何检测文本框的内容已更改
我想检测用户的键盘操作何时改变文本字段的值.它应该在现代浏览器中一致地工作.
.keypress事件的JQuery页面说它不一致?此外,它不适用于退格,删除等.
我不能使用.keydown,因为它会对shift,alt和箭头键等作出反应.此外,当用户按住某个键并插入多个字符时,它不会多次触发.
有没有简洁的方法我错过了?或者我应该使用.keydown并过滤掉由箭头键,移位等触发的事件?我主要担心的是,我不知道应该过滤掉的密钥.(我差点忘了alt和ctrl,我想可能还有其他人)但是那时我怎样才能检测到按下的键并插入多个字符?
作为奖励,它会检测由于粘贴(包括右键单击)引起的变化,但我从这里得到了解决方案.
如何onKeyPress
在ReactJS中使事件发挥作用.enter (keyCode=13)
按下时应该发出警报.
var Test = React.createClass({
add: function(event){
if(event.keyCode == 13){
alert('Adding....');
}
},
render: function(){
return(
<div>
<input type="text" id="one" onKeyPress={this.add} />
</div>
);
}
});
React.render(<Test />, document.body);
Run Code Online (Sandbox Code Playgroud) 我想知道我做错了什么:
$(".s").keypress(function(e) {
switch (e.keyCode) {
case 8: // Backspace
//console.log('backspace');
case 9: // Tab
case 13: // Enter
case 37: // Left
case 38: // Up
case 39: // Right
case 40: // Down
break;
default:
doSearch();
}
});
Run Code Online (Sandbox Code Playgroud)
doSearch()
当我按下Backspace键时,我希望我的功能也被触发.目前,当我Backspace在Chrome和Safari中按下时,绝对没有任何反应.
有任何想法吗?
keypress ×10
javascript ×5
jquery ×5
enter ×3
events ×2
angularjs ×1
automation ×1
backspace ×1
bind ×1
call ×1
dom-events ×1
forms ×1
function ×1
onkeypress ×1
reactjs ×1
selenium ×1
textbox ×1
triggers ×1