当用户按文本框中的 Enter 键时执行按钮单击事件
本文关键字:执行 按钮 事件 单击 Enter 用户 文本 | 更新日期: 2023-09-27 17:56:13
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>
当用户按Button1
Enter key
时,我必须执行单击事件Textbox1
将窗体放在 asp.net 面板控件中,并使用按钮 ID 设置其 defaultButton 属性。请参阅下面的代码:
<asp:Panel ID="Panel1" runat="server" DefaultButton="Button1">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
希望这对您有所帮助...
在 aspx 页加载事件中,向框中添加一个onkeypress
。
this.TextBox1.Attributes.Add(
"onkeypress", "button_click(this,'" + this.Button1.ClientID + "')");
然后添加此 javascript 以评估按键,如果是"输入",请单击右键。
<script>
function button_click(objTextBox,objBtnID)
{
if(window.event.keyCode==13)
{
document.getElementById(objBtnID).focus();
document.getElementById(objBtnID).click();
}
}
</script>
Codeproject 为此提供了一个完整的解决方案:
http://www.codeproject.com/Articles/17241/Capturing-the-Enter-key-to-cause-a-button-click
就像文章所说的那样:"确定哪种解决方案最适合您的需求"
====================编辑答案 ===
==============================上面提到的链接讨论了捕获"Enter Key"事件的两种方法:
Javascript(将onKeyPress事件绑定到对象并创建一个javascript函数来检查按下了哪个键并执行逻辑)
_Page_Load在代码隐藏中:_
//Add the javascript so we know where we want the enter key press to go
if (!IsPostBack)
{
txtboxFirstName.Attributes.Add("onKeyPress",
"doClick('" + btnSearch.ClientID + "',event)");
txtboxLastName.Attributes.Add("onKeyPress",
"doClick('" + btnSearch.ClientID + "',event)");
}
Javascript代码:
<SCRIPT type=text/javascript>
function doClick(buttonName,e)
{
//the purpose of this function is to allow the enter key to
//point to the correct button to click.
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
if (key == 13)
{
//Get the button the user wants to have clicked
var btn = document.getElementById(buttonName);
if (btn != null)
{ //If we find the button click it
btn.click();
event.keyCode = 0
}
}
}
</SCRIPT>
面板控制
<asp:Panel ID="panSearch" runat="server" DefaultButton="btnSearch2" Width="100%" >
<asp:TextBox ID="txtboxFirstName2" runat="server" ></asp:TextBox>
</asp:Panel>
引用:
请注意,Panel 标记具有一个名为 DefaultButton 的属性。你设置 此属性为要单击的按钮的按钮 ID 输入按键事件。因此,面板内的任何文本框都将 将其回车键按到默认按钮中设置的按钮 小组的属性
HTML 代码中,添加一个包含页面控件的面板。在面板中,添加一行 DefaultButton = "buttonNameThatClicksAtEnter"。请参阅下面的示例,应该不需要任何其他内容。
<asp:Panel runat="server" DefaultButton="Button1"> //add this!
//here goes all the page controls and the trigger button
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Send" />
</asp:Panel> //and this too!
用javascript/jquery来做到这一点:
<script>
function runScript(e) {
if (e.keyCode == 13) {
$("#myButton").click(); //jquery
document.getElementById("myButton").click(); //javascript
}
}
</script>
<asp:textbox id="txtUsername" runat="server" onkeypress="return runScript(event)" />
<asp:LinkButton id="myButton" text="Login" runat="server" />
你可以试试:
在 HTML 中:
<asp:TextBox ID="TextBox1" runat="server" onKeyDown="submitButton(event)"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
和javascript:
function submitButton(event) {
if (event.which == 13) {
$('#Button1').trigger('click');
}
}
代码隐藏:
protected void Button1_Click(object sender, EventArgs e)
{
//load data and fill to gridview
} // fixed the function view for users
希望这个帮助
使用Jquery或其他东西,这里是例子
的 http://riderdesign.com/articles/Check-username-availability-with-JQuery-and-ASP.NET.aspx我希望我能帮助你更多