【发布时间】:2016-02-14 04:30:55
【问题描述】:
我已经在 Web 表单上工作了好几个月了,但是今天我遇到了一个问题。
我有例如Save 表单上有 2 个按钮。接下来,当用户填写表单并按下 Enter 时,它应该触发 SAVE 按钮。
我试过很多
this.Page.Form.DefaultButton = btnSave.UniqueID;
this.Page.Form.DefaultFocus = btnSave.ClientID;
但是没有用。
请帮助我。我尝试了很多代码,但没有一个真正起作用。
protected void Page_Load(object sender, EventArgs e)
{
// 2 lines of code, for setting Save as a default
// button upon page loading so hitting Enter will
// trigger SAVE button.
this.Page.Form.DefaultButton = btnSave.UniqueID;
this.Page.Form.DefaultFocus = btnSave.ClientID;
if (Session.Count <= 0)
{
Response.Redirect("login.aspx");
}
lblMsgPopUp.Visible = false;
}
【问题讨论】:
-
这对我来说是正确的,而且我已经能够让您的代码在 Chrome 和 Firefox 中运行。你得到什么具体的错误或问题?什么“没用”?
-
当我点击文本框时,它会将焦点从保存按钮上移开。
-
嗯,是的,这是意料之中的。在
btnSave上设置默认(即初始)焦点不会阻止焦点转移到文本框或单击的其他输入。按 Enter 时会发生什么? -
看,问题是我有 4 个文本框,例如我在第一个文本框中输入文本并意外按下回车而不是触发回车,我希望它仅在到达最后一个文本框时触发回车
-
这假定第 4 个文本框始终是用户提供输入的最后一个文本框。听起来您最好在过早按下 Enter 时使用客户端验证来取消提交。