当你创建一个aspx页面时:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
如何避免在文本框中输入时发出的哔声。
另一方面,我想处理enter onkeypress事件。
的Tx!
答案 0 :(得分:10)
首先,当在网页上的文本框中按Enter键时,发出蜂鸣声并非标准行为。试试Google的搜索页面,或者就此而言,请尝试本页底部的“名称”,“电子邮件”和“主页”字段。在任何浏览器中按Enter键时都不会发出蜂鸣声。
要防止发出哔哔声,请处理<INPUT>
标记上的onKeyDown事件,如果按下回车键则返回false:
<input type="text" name="TextBox1" value="" onKeyDown="return StopBeepOnEnter(event)" />
<script type="text/javascript">
function StopBeepOnEnter(event)
{
if (event.keyCode == 13)
{
// Do Whatever...
return false; // This stops the beep
}
}
</script>
这是使用jQuery的同样的事情(我实际测试了这个,它解决了我的问题):
<script type="text/javascript">
$("#<%=TextBox1.ClientID %>").keydown(function(event)
{
if (event.keyCode == 13)
{
// Do Whatever...
return false; // This stops the beep
}
});
</script>
我在这个帖子上找到了解决方案 - 归功于Tharn Jaggar:
答案 1 :(得分:4)
这里要注意几点......
如果隐藏提交按钮或根本没有提交按钮,则会发出警报。如果您像往常一样手动滚动自己的<a>
按钮(因为默认操作系统按钮很难看),通常会出现这种情况。您可能想要研究的一件事是使用<button type="submit"></button>
,因为您可以将它们设置为比标准输入按钮更多的样式,并且它们将有机地处理关键事件。
如果您拦截keyup
或keydown
上的keyCode 13,则仍会出现提醒。我不知道这些事件是什么,但你必须使用keypress
。这就是我通常在全球范围内使用jQuery做的事情......
$("input[type=text],input[type=password]").keypress(function(e) {
if(e.keyCode == 13) {
$(this).closest("form").trigger("submit");
e.preventDefault();
}
});
然后在页面级别我捕获提交事件并执行我的验证例程......
$("form").submit(function(e) {
var txt = $("#txtUser");
if(txt.val().length == 0) {
alert("Who are you?");
txt.focus();
e.preventDefault();
}
});
答案 2 :(得分:1)
将其放在表单标记onkeypress="if(event.keyCode==13)return false;"
答案 3 :(得分:0)
您必须在操作系统的声音首选项中将其关闭。这是Internet Explorer的事情。
答案 4 :(得分:0)
如果它与您的受众群体使用的浏览器相关,那么他们已经习惯了它,因为它发生在除您之外的其他所有网站上。我说它不值得担心 - 有点像关闭JavaScript的人。他们知道他们已经关闭了,他们已经习惯了缺乏某些功能的网站。你不能强迫他们打开它,你不能强迫他们关掉声音。这是其中一项经验,包括你必须接受网络应用程序。
答案 5 :(得分:0)
我在asp中没有做太多的事情,但我首先想到的是它类似于Winforms应用程序。解决问题的第一步是将密钥(代码,密钥代码,事件中的任何名称)var设置为#0或null,以及在返回之前的事件调用中的任何变量(例如e.handled)。 / p>
答案 6 :(得分:0)
最后,我可以在文本字段或组合或任何组件中按Enter键同时禁用页面所有组件上的哔声。我做的是我在我的身体标签中添加了[onkeypress =“if(event.keyCode == 13)return false;”],如下所示:
<body onkeypress="if(event.keyCode==13)return false;">
我在GWT GXT应用程序中使用了上面的代码。
Krishan Babbar
答案 7 :(得分:0)
KeyPressEvent.preventDefault()
似乎在GWT中诀窍