我们通过检查用户输入的密钥代码来执行前端验证。这种方法在chrome和Internet Explorer中很成功,但我们无法访问firefox浏览器中的密钥代码。
function alphanumeric_only(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (event) keycode = event.keyCode;
else if (e) keycode = e.which;
else return true;
if(
(keycode >= 48 && keycode <= 57) || (keycode >= 65 && keycode <= 90) || (keycode >= 97 && keycode <= 122) || (keycode == 35) || (keycode == 32) || (keycode == 44) || (keycode == 45) || (keycode == 95))
{
return true;
}
else
{
return false;
}
return true;
}`
我们从输入字段调用该函数如下.....
<div style="float: left;">
<input type="text" id="customname" onkeypress="return alphanumeric_only(this);" value="">
</div>
答案 0 :(得分:0)
您明确地将this
作为参数传递给函数,而不是事件
onkeypress="return alphanumeric_only(this);"
这意味着函数中的e
是元素,而不是事件
function alphanumeric_only(e) {
// "e" is the element. not the event
这仍适用于Chrome和IE,因为这些浏览器支持全局window.event
,但Firefox不支持。{/ p>
解决方案是传递事件
onkeypress="return alphanumeric_only(event, this);"
和
function alphanumeric_only(e, element) { ...
甚至更好,删除内联javascript
<input type="text" id="customname" value="">
并使用适当的事件处理程序,使这更容易
document.getElementById('customname').addEventListener('keypress', function(evt) {
var keycode = evt.which || evt.keyCode;
if ((keycode >= 48 && keycode <= 57) ||
(keycode >= 65 && keycode <= 90) ||
(keycode >= 97 && keycode <= 122) ||
(keycode == 35) || (keycode == 32) ||
(keycode == 44) || (keycode == 45) ||
(keycode == 95)) {
e.preventDefault();
}
});
答案 1 :(得分:0)
您好,您可以尝试使用此代码,它可以在所有浏览器中运行:)
<p id="demo"></p>
<div style="float: left;">
<input type="text" id="customname" onkeypress="alphanumeric_only(event)" value="">
</div>
<script>
function alphanumeric_only(event)
{
var keycode1 = event.which || event.keyCode;
document.getElementById("demo").innerHTML = "The Unicode value is: " + keycode1 ;
if((keycode >= 48 && keycode <= 57) || (keycode >= 65 && keycode <= 90) || (keycode >= 97 && keycode <= 122) || (keycode == 35) || (keycode == 32) || (keycode == 44) || (keycode == 45) || (keycode == 95))
{
return true;
}
else
{
return false;
}
return true;
}
</script>