本文介绍了如何在asp.net的键盘上按Tab键时引发事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在asp.net的键盘上按Tab键时引发事件?
i需要在用户点击键盘上的标签按钮时触发事件?
我怎样才能实现它?
请帮助..
how to raise an event when tab key is pressed from key board in asp.net?
i need to trigger an event when user click tab button from keyboard?
how can i achieve it?
please help..
推荐答案
<script language="JavaScript">
init();
</script>
function init()
{
document.testform.t.value+= '';
lines= 0;
if (document.addEventListener)
{
document.addEventListener("keydown",keydown,false);
document.addEventListener("keypress",keypress,false);
document.addEventListener("keyup",keyup,false);
document.addEventListener("textInput",textinput,false);
}
else if (document.attachEvent)
{
document.attachEvent("onkeydown", keydown);
document.attachEvent("onkeypress", keypress);
document.attachEvent("onkeyup", keyup);
document.attachEvent("ontextInput", textinput);
}
else
{
document.onkeydown= keydown;
document.onkeypress= keypress;
document.onkeyup= keyup;
document.ontextinput= textinput; // probably doesn't work
}
}
function showmesg(t)
{
var old= document.testform.t.value;
if (lines >= maxlines)
{
var i= old.indexOf('\n');
if (i >= 0)
old= old.substr(i+1);
}
else
lines++;
document.testform.t.value= old + t + '\n';
}
function keyval(n)
{
if (n == null) return 'undefined';
var s= pad(3,n);
if (n >= 32 && n < 127) s+= ' (' + String.fromCharCode(n) + ')';
while (s.length < 9) s+= ' ';
return s;
}
function keymesg(w,e)
{
var row= 0;
var head= [w, ' '];
if (document.testform.classic.checked)
{
showmesg(head[row] +
' keyCode=' + keyval(e.keyCode) +
' which=' + keyval(e.which) +
' charCode=' + keyval(e.charCode));
row= 1;
}
if (document.testform.modifiers.checked)
{
showmesg(head[row] +
' shiftKey='+pad(5,e.shiftKey) +
' ctrlKey='+pad(5,e.ctrlKey) +
' altKey='+pad(5,e.altKey) +
' metaKey='+pad(5,e.metaKey));
row= 1;
}
if (document.testform.dom3.checked)
{
showmesg(head[row] +
' key='+e.key +
' char='+e.char +
' location='+e.location +
' repeat='+e.repeat);
row= 1;
}
if (document.testform.olddom3.checked)
{
showmesg(head[row] +
' keyIdentifier='+ pad(8,e.keyIdentifier)+
' keyLocation='+e.keyLocation);
row= 1;
}
if (row == 0)
showmesg(head[row]);
}
function pad(n,s)
{
s+= '';
while (s.length < n) s+= ' ';
return s;
}
function suppressdefault(e,flag)
{
if (flag)
{
if (e.preventDefault) e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
}
return !flag;
}
function keydown(e)
{
if (!e) e= event;
keymesg('keydown ',e);
return suppressdefault(e,document.testform.keydown.checked);
}
function keyup(e)
{
if (!e) e= event;
keymesg('keyup ',e);
return suppressdefault(e,document.testform.keyup.checked);
}
function keypress(e)
{
if (!e) e= event;
keymesg('keypress',e);
return suppressdefault(e,document.testform.keypress.checked);
}
function textinput(e)
{
if (!e) e= event;
//showmesg('textInput data=' + e.data);
showmesg('textInput data='+e.data);
return suppressdefault(e,document.testform.textinput.checked);
}</pre>
if ((e.which || e.keyCode) == 9) {
// tab key was pressed, do stuff
}
否则,您可以处理onblur事件,该事件在Tab按下以及在元素外部单击时触发。
Otherwise, you can handle onblur event, which is fired on Tab press as well as on clicking outside the element.
<script type="text/javascript">
document.onkeyup = PresTab;
function PresTab(e)
{
var keycode = (window.event) ? event.keyCode : e.keyCode;
if (keycode == 9)
alert('tab key pressed');
}
</script>
这篇关于如何在asp.net的键盘上按Tab键时引发事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!