我有 2 个 asp 文本框,如果在 2 个文本框中的任何一个上按下 Enter 键,我已附加 jQuery 来触发链接按钮服务器端单击。但这似乎不起作用,请帮我解释一下我做错的地方和内容。我需要一个适用于所有主要浏览器 [IE7,8,9]、[Firefox 3,4]、Safari[4,5] 的解决方案。
这是我的代码,
<script language="javascript" type="text/javascript">
function GC_PostBack() {
jQuery('#<%=lnkSubmitGiftCardNumber.ClientID%>').trigger("click");
}
在服务器端 pn Page_Load,我将此函数附加到文本框的 onkeypress 事件。
if (!IsPostBack)
{
txtGiftCardNumber.Attributes.Add("onkeypress", "if(window.event.keyCode == 13) { GC_PostBack(); }");
txtGiftCardPin.Attributes.Add("onkeypress", "if(window.event.keyCode == 13) { GC_PostBack(); }");
}
我尝试使用 .click() 而不是 .trigger("click"),但无济于事。请帮忙!
谢谢。
最佳答案
Alison 是正确的,如果您想像现在一样使用 jQuery,只需执行以下操作:
<script language="javascript" type="text/javascript">
function GC_PostBack() {
jQuery('#<%=lnkSubmitGiftCardNumber.ClientID%>').click();
}
</script>
编辑:
如果您使用 jQuery,为什么不使用 jQuery 来完成这一切呢?目前,您所拥有的内容无法跨浏览器运行按键事件。我建议这样:
(function() {
$('input[id$="txtGiftCardNumber"], input[id$="txtGiftCardPin"]')
.keypress(function(e) {
var keyCode;
if (window.event) keyCode = window.event.keyCode;
else if(e) keyCode = e.which;
else return true;
if (keyCode == 13) {
$('[id$="lnkSubmitGiftCardNumber"]').click();
return false;
} else return true;
});
});
关于jquery - 触发asp.net链接按钮点击回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809898/