【发布时间】:2011-10-20 11:46:12
【问题描述】:
我有一个 asp.net 文本框,它接受格式为 MM/DD/YYYY 的日期。输入日期后我会按回车键。如果回车键我需要执行服务器端代码。我们怎样才能做到这一点?
文本框的问题是它只有在失去焦点时才会触发 Text Changed 事件。
【问题讨论】:
标签: c# javascript jquery asp.net
我有一个 asp.net 文本框,它接受格式为 MM/DD/YYYY 的日期。输入日期后我会按回车键。如果回车键我需要执行服务器端代码。我们怎样才能做到这一点?
文本框的问题是它只有在失去焦点时才会触发 Text Changed 事件。
【问题讨论】:
标签: c# javascript jquery asp.net
您可以使用Panel.DefaultButton 属性在用户按下 Enter 键时自动单击按钮。
例如:
<asp:Panel Id="panel1" runat="server" DefaultButton="btnSubmit">
<asp:TextBox Id="txtDate" runat="server" />
<asp:Button Id="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" runat="server" />
</asp:Panel>
如果不想显示按钮,可以设置其style="display: none"。
【讨论】:
你设置了jquery标签
所以使用 jquery 你可以尝试这样的事情
$("#field").keydown(function(e){
if(e.keyCode === 13)
{
// enter event
}
});
【讨论】:
使用keydown事件:
textBox.Attributes.Add("onKeyDown", "KeyDownHandler()");
让KeyDownHandler() 检查按下的键,如果正确,则提交周围的表单或调用 AJAX 请求。请参阅Javascript Char Codes 的键盘代码。
或者,文本框 ID 可以从 .aspx 注入到 jQuery 中并分配一个直接的 keydown 处理程序:
$('#<%=textBox.clientID%>').keydown(function (e) { /* Do server request; */ });
【讨论】:
你可以调用这个Javascript函数来检查是否按下了回车键。
function checkEnterKeyPress(e)
{
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
if (key == 13){
alert(key);
}
}
【讨论】: