提交按钮具有runat=server属性,即它是一个服务器控件,所以一般来说在页面的文本框里写上onkeydown="if(event.keyCode==13) {Button1.focus(); Button1.click();}"是不会起作用的,因为Button1是按钮的服务器端ID而不是客户端的。
方法一: 要解决以上问题,应该把onkeydown事件的处理写到codebehind里,代码片段如下:
TextBox1.Attributes.Add("onkeydown", "if(event.keyCode==13) {document.all." + Button1.ClientID + ".focus();document.all." + this.Button1.ClientID + ".click();}");
把这句话写到Page_Load或自定义的InitData()里就可以了。
protected void Page_Load(object sender, EventArgs e)
{
TxtKey.Attributes["onkeydown"] = "if(event.keyCode==13){document.all('Top1_BtnSearch').click();return false;}";
}
protected void BtnSearch_Click(object sender, EventArgs e)
{
}
方法二:
function enterClick()
{
if(event.keyCode==13)
{
document.getElementById("Submit").focus();
document.getElementById("Submit").click();
}
}
<input id="Password" name="pwd" onkeydown="enterClick();" type="password" />
本文探讨了在ASP.NET中如何正确地在文本框中触发服务器控件的键盘事件,通过将事件处理逻辑移至后台代码,实现文本框回车按键触发按钮点击的功能。介绍了两种解决方案,并详细解释了每种方法的实现步骤。
258

被折叠的 条评论
为什么被折叠?



