我正在做,每个人在论坛上都做了什么,但是出了点问题,我无法使用初始代码在mozilla firefox上验证我的表单,它可以在任何浏览器上正常运行,但不能在mozilla上运行,初始代码是:

function ValidateOnlyText() {
 if ((event.keyCode != 32) && (event.keyCode < 65)
    || (event.keyCode > 90) && (event.keyCode < 97)
    || (event.keyCode > 122))
    {alert("only text");
  event.returnValue = false;
}


每当用户使用onkeypress的示例在输入上写入内容时,就会执行该函数:

<input class="inputShort" name="lastname" type="text" id="lastname" onkeypress="ValidateOnlyText()"/>


因此,在搜索中,我发现有很多人可以在firefox上更正此问题,并且我对其进行了测试(其他浏览器的keyCode),而对于Firefox,则在javascript代码上进行了测试:

function ValidaSoloTextos(e) {
    var key=document.all?e.keyCode:e.which;
    if ((key!=32)&&(key<65)||(key>90)&&(key<97)||(key>122)){
        alert("solo texto");
        return false;
    }
}


并在输入上添加以下内容:

onkeypress="ValidaSoloTextos(this.value)"


那有什么问题?我将进行更多搜索,如果我发现了一些新问题,请更新。

最佳答案

您需要将事件传递给函数:

<input class="inputShort" name="lastname" type="text" id="lastname" onkeypress="ValidateOnlyText(event)"/>


因此将this.value更改为event

另外,我会将document.all更改为e.keyCode,这更有意义。

return之前添加ValidateOnlyText(event)以阻止键入不需要的字符。

这也可能对您有用:
Allow only numbers to be typed in a textbox

10-05 20:33
查看更多