event.keyCode在Firefox中不起作用
event.keyCode not working in Firefox
我在ASP.net C#上开发的登录页面出现问题。该表单适用于IE,但不适用于Firefox。这是我的样品:
<%@ Page Language="c#" Inherits="ClubCard.loginClubcard" CodeFile="loginClubcard.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>
Acceso Clubcard
</title>
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.25)" />
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.25)" />
<link rel="stylesheet" type="text/css" href="styles.css">
<style>
#centered
{
LEFT: 50%;
MARGIN-LEFT: -235px;
POSITION: absolute;
TOP: 150px
}
.letras
{
FONT-SIZE: 10pt;
COLOR: white;
FONT-FAMILY: Arial
}
.cajas
{
FONT-SIZE: 10pt;
FONT-FAMILY: Arial
}
.letrasGris A
{
FONT-SIZE: 12px;
COLOR: #8f8f92;
FONT-FAMILY: Arial;
TEXT-DECORATION: none
}
.highlightit IMG
{
FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
-moz-opacity: 1
}
.highlightit:hover IMG
{
FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
-moz-opacity: 0.5
}
</style>
<script language="javascript">
function actLogin()
{
__doPostBack('btnLogin', '');
}
function actFocus()
{
tbxPrincipal = document.getElementById("tbxUsername").focus();
}
function ValidarEnter(src)
{
if (event.keyCode == "13")
{
actLogin();
}
}
function AbrirLogin()
{
if (window.frameElement != null)
{
window.parent.location.replace(window.location.href);
}
}
</script>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" onload="AbrirLogin();actFocus()">
<form id="Form1" method="post" runat="server" target="_top">
<table id="Table_01" width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="background: url(images/login/loginBg.gif) repeat-x">
</td>
</tr>
</table>
<div id="centered">
<div style="left: 50%; margin-left: -100px; position: absolute">
<div>
<img src="images/login/logoClubCard.gif">
</div>
</div>
<div style="margin-left: 100px; width: 200px; position: absolute; top: 240px">
<table width="100%" cellpadding="0" cellspacing="2" border="0">
<tr>
<td align="right" class="letras">
USUARIO:
</td>
<td>
<asp:TextBox runat="server" CssClass="cajas" ID="tbxUsername">
</asp:TextBox>
</td>
<td rowspan="3">
<a class="highlightit" href="javascript:actLogin()" tabindex="3">
<img border="0" src="images/login/botonLogin.gif">
</a>
</td>
</tr>
<tr>
<td align="right" class="letras">
CLAVE:
</td>
<td>
<asp:TextBox runat="server" CssClass="cajas" ID="tbxPassword" TextMode="Password" OnKeyPress="ValidarEnter(this)" OnTextChanged="tbxPassword_TextChanged">
</asp:TextBox>
</td>
</tr>
</table>
</div>
<div style="margin-top: 54px">
<img src="images/login/cajaAzul.gif">
</div>
<div style="display: inline; float: left;width:50% " align="center">
<asp:RequiredFieldValidator ID="rfvUsername" runat="server"
CssClass="tA" ErrorMessage="* Escriba su USUARIO"
ControlToValidate="tbxUsername">
</asp:RequiredFieldValidator>
<br>
<asp:RequiredFieldValidator ID="rfvPassword" runat="server"
CssClass="tA" ErrorMessage="* Escriba su CLAVE"
ControlToValidate="tbxPassword">
</asp:RequiredFieldValidator>
<br>
<table >
<tr align="center">
<td>
<asp:Label runat="server" ID="lblError" Visible="False">
<font color="red" class="tA">
<b>
El USUARIO y CLAVE no coincidieron, trate de nuevo
</b>
</font>
</asp:Label>
</td>
</tr>
</table>
</div>
</div>
<div style="display: none">
<input type="button" runat="server" id="btnLogin" value="login" onserverclick="btnLogin_ServerClick">
</div>
</form>
</body>
</html>
我注意到在这部分。。。
function ValidarEnter(src)
{
if (event.keyCode == "13")
{
actLogin();
}
}
当我在firefox上调试它时,它只是跳过它。我已经尝试添加window.event.keyCode
。。。也可以用13切换"13"。。。我该如何解决这个问题?
event.keycode不受Firefox支持。将event.which用于firefox。
function checkKey(evt) {
var keyID = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
alert(keyID);
}
我在做一个项目时遇到了同样的问题。我做了一些RND
,发现了这两件事;
- 无论浏览器是Chrome还是Firefox,
e.keyCode
都可以与onkeydown()
功能配合使用
以下是适用于Chrome&Firefox。
// HTML (Note onkeydown() function here)
<input id="anyId" onkeydown="return myFunction(event)" type="text" />
// JavaScript for it
function myFunction(e) {
var asciiValue = e.keyCode ;
alert ("ASCII Value: " + asciiValue ); // ASCII of pressed key
if(asciiValue >0){
return true;
}
else{
return false;
}
}
- 但是如果我们在Firefox中使用
onkeypress()
函数,那么e.keyCode
将不起作用。为此,采用var asciiValue= e.keyCode || e.charCode
// HTML (Note onkeypress() function here)
<input id="anyId" onkeypress="return myFunction(event)" type="text" />
// JavaScript for it
function myFunction(e) {
var asciiValue = e.keyCode || e.charCode ; // It'll handle both Chrome & Firefox
alert ("Ascii Value: " + asciiValue); // ASCII of pressed key
if(asciiValue>0){
return true;
}
else{
return false;
}
}
<input type="text" onkeypress="return key_fir(event);" name="name" id="login_email">
function key_fir(e)
{
e = e || window.event || {};
var charCode = e.charCode || e.keyCode || e.which;
if (charCode == 13) {
//write your code here Like $("#log_sub").click();
}
}
相关文章:
- 为什么javascript:void(0)在Firefox中不起作用
- jpm的默认Firefox路径没有'不起作用
- 设置 CSS 背景在 Firefox 中不起作用
- document.getElementById 在 Firefox 中不起作用
- firefox中的CSS动画不起作用
- event.stopPropagation()在firefox javascript中不起作用
- 复选框.onClick在firefox中不起作用
- window.close();在Chrome和Firefox中不起作用
- JQuery在Chrome中不起作用,但Firefox很好
- 选择“行在 Chrome 和 Firefox 中不起作用(生成的代码)”
- Javascript 按键事件在 Firefox 中不起作用
- window.dispatchEvent 在 Firefox、Safari 或 IE 中不起作用
- 更改 Angular 2 中选择的事件在 Firefox 和 Edge 中不起作用
- jQuery SlideToggle() 在 FireFox 中不起作用,在 Chrome 中工作
- 动态关键帧插入在 IE 或 Firefox 上不起作用
- 使用 nameProp 的 JQuery 图像滚动更新在 Firefox 和 Chrome 中不起作用
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- HTML5<视频>元素在Firefox、Opera和Safari中不起作用
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- Ajax 提交表单不起作用 Firefox