我在页面上有3个TextBox,3个Button,每个Button分别执行不同的动作。我们现在想在TextBox中检测是否按下了回车键,如果是则执行不同的Button调用。即TextBox1中按下回车就执行Button1的动作,......
我从网上找来的是这种写法。但是我自己试验发现页面都响应的是button1的事件。由于button1是页面上的第一个按钮控件,我在页面上任意地方按回车都会导致该事件的发生。我现在怎么真的做到上面一段提到的功能。另外怎么不让在页面任意地方按回车就响应button1
<script language="javascript" event="onkeydown" for="TextBox1">
if(event.keyCode==13)<!-- 注意大小写-->
{
__doPostBack('Button1','');
return false;<!--很重要,不然会选择Button1进行提交 -->
}
</script>
<script language="javascript" event="onkeydown" for="TextBox2">
if(event.keyCode==13)
{
__doPostBack('Button2','');
return false;<!--很重要,不然会选择Button1进行提交 -->
}
</script>
<script language="javascript">
function keypress()
{
if(event.keyCode==13)
{
__doPostBack('Button3','');
event.keyCode=0; <!--很重要,不然会选择Button1进行提交 -->
return false;<!--很重要,不然会选择Button1进行提交 -->
}
}
</script>
我从网上找来的是这种写法。但是我自己试验发现页面都响应的是button1的事件。由于button1是页面上的第一个按钮控件,我在页面上任意地方按回车都会导致该事件的发生。我现在怎么真的做到上面一段提到的功能。另外怎么不让在页面任意地方按回车就响应button1
<script language="javascript" event="onkeydown" for="TextBox1">
if(event.keyCode==13)<!-- 注意大小写-->
{
__doPostBack('Button1','');
return false;<!--很重要,不然会选择Button1进行提交 -->
}
</script>
<script language="javascript" event="onkeydown" for="TextBox2">
if(event.keyCode==13)
{
__doPostBack('Button2','');
return false;<!--很重要,不然会选择Button1进行提交 -->
}
</script>
<script language="javascript">
function keypress()
{
if(event.keyCode==13)
{
__doPostBack('Button3','');
event.keyCode=0; <!--很重要,不然会选择Button1进行提交 -->
return false;<!--很重要,不然会选择Button1进行提交 -->
}
}
</script>
document.onkeydown=onkeydownEventHandler;
function onkeydownEventHandler()
{
var obj=event.srcElement;
if (obj.tagName.toLowerCase()=="input")
{
if(event.keyCode==13)
{
var buttonid=obj.id.replace('Text','Button'); //注意区分大小写
__doPostBack(buttonid,'');
}
}
else
event.keyCode=0;
}
</script>
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
var obj=event.srcElement;得到当前焦点的对象,可以为TextBox,Button,及其他
obj.tagName.toLowerCase()得到当前焦点的类型
判断类型是否为文本框的如不是发出event.keyCode=0;即不执行页面的onkeydown事件
如是判断是否在此焦点内有回车事件(event.keyCode==13)如是通过当前焦点的ID得到按钮的ID(var buttonid=obj.id.replace('Text','Button');)
用__doPostBack(buttonid,'');提交按钮事件