使用javascript中的keypress事件
using keypress event in javascript
我想用按键删除php会话变量。所以我用了这些代码,
<script type="text/javascript">
function textsizer(e){
var evtobj=window.event? event : e
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
var actualkey=String.fromCharCode(unicode)
if(actualkey=="x"){
location.href="biling.php?cmd="+actualkey;}
}
document.onkeypress=textsizer
</script>
<?php if(isset($_GET['cmd'])){
unset($_SESSION["bill_array"]);
header('location:biling.php');
}
?> }
但问题是,当我在文本框中键入"x"时,这段代码也会清除会话。所以我只想停止它,只在我按下文本框的"x"时清除会话
我认为您可以这样编辑现有函数:
function textsizer(e) {
var evtobj=window.event? event : e;
var element = evtobj.target ? evtobj.target : evtobj.srcElement;
if (element.tagName.toLowerCase() == "body") {
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode;
var actualkey=String.fromCharCode(unicode)
if(actualkey=="x"){
location.href="biling.php?cmd="+actualkey;
}
}
}
您可以检查e.target
属性以确定哪个元素触发keypress
事件。
//Does not work on IE
window.addEventListener('keypress', function(e){ console.log(e.target) }, false)
在e.target.tagName == 'BODY'
时采取行动是一个不错的选择。
更新
有关Event
的更多信息,请查看:
- 火狐&Webkit,https://developer.mozilla.org/en/DOM/event
- 即,http://msdn.microsoft.com/en-us/library/ie/ms535863(v=vs.85).aspx
$("input[type='text']").keypress(function(){
});
相关文章:
- keypress事件无法使用addEventListener函数
- EmberJS中的全局keyDown/keyPress事件,而无需设置焦点
- 对于jqGrid:在keypress事件中调用$(document).on('click'.)无法正常工
- 当我们按下回车键时,不会触发keypress事件
- 使用javascript中的keypress事件
- event.prventDefault()在Android上的keypress事件中不起作用
- 在backbonejs视图中,keypress/keyup/keydown事件是否仅适用于输入,而不适用于其他元素
- KeyPress事件在Asp.Net中的图像控件上不起作用
- fire keyPress tinyMce中的事件
- 当按住键时,jQuery keypress事件会重复触发,但不会在所有键上触发
- 如何从jquery keypress事件中调用js函数
- html中keypress/keydown/keyup事件的计算
- jQuery keypress/keyup/etc事件不触发时,选择框展开
- javascript事件.在FireFox 3.6.25中,keyCode不能处理keydown、keypress或ke
- n -keypress事件没有被触发,当-或.按在数字键盘上
- AngularJs Ng-Keypress事件工作错误
- 事件.keyCode在keydown/keyup和keypress中是不同的
- Jquery keypress()事件对keyup()不起作用
- 在某些情况下,KeyPress事件不会在边缘触发Enter键
- 如何在asp.net中处理KeyPress或KeyDown事件