HTML的关键新闻事件在移动设备中不起作用



function keyDown()
{
alert("KeydownEvent Fired");
}
function keypress()
{
alert("keypress Event Fired")
}
function keyup()
{
alert("key up event fired");
}
function onlyAlphabets(e) {
                debugger;
                try {
                    if (window.event) {
                        var charCode = window.event.keyCode;
                    }
                    else if (e) {
                        var charCode = e.which;
                    }
                    else { return true; }
                    var keyCodes = [13, 16, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 91, 92, 93, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99,
                                    100, 101, 102, 103, 104, 105, 144, 145];
                    if (keyCodes.indexOf(charCode) != -1) {
                        return false;
                    }
                    else if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8 || charCode == 32 || charCode == 9 || charCode == 46 || charCode == 37 || charCode == 39 || charCode == 16 || charCode == 17)
                        return true;
                    else
                        return false;
                }
                catch (err) {
                    alert(err.Description);
                }
            }
<input type="textbox" placeholder="Keydown" onkeydown="return onlyAlphabets(event,this);"></input>
</br>
<input type="textbox" placeholder="Keypress" onkeypress="keypress()"></input>
</br>
<input type="textbox" placeholder="Keyup" onkeyup="keyup()"></input>
</br>

这只是一块代码。

我包含了一些输入标签,这些标签都有不同的按键事件,然后我将其上传到现场,它在所有浏览器的工作中正常工作,但是,当我尝试在手机或平板电脑中打开页面时,它不正常。

即使警报在浏览器中工作,但我在键盘上对名字进行了验证,用户只能输入字母(不允许使用数字和特殊字符)

在移动浏览器中,onkeydownonkeyup都可以使用。我认为您有简单的语法错误,可能是问题

在手机中检查此小提琴。除了onkeypress

以外,还有2个事件正在发射

演示: -

<script>
function keyDown()
{
alert("KeydownEvent Fired");
}
function keypress()
{
alert("keypress Event Fired")
}
function keyup()
{
alert("key up event fired");
}
</script>
<input type="textbox" placeholder="Keydown" onkeydown="keyDown()"/>
<br/>
<input type="textbox" placeholder="Keypress" onkeypress="keypress()"/>
<br/>
<input type="textbox" placeholder="Keyup" onkeyup="keyup()"/>
<br/>

编辑: -

要添加onkeydown中必须处理的验证。检查此提琴的详细信息

Android验证的最佳解决方案是使用键盘函数并使用REGEX Expression验证代码如下(仅此REGEX仅允许字母),请注意,Android不支持DistrestDefault();方法

$( "#textbox" ).on("keyup", function(e) {
                         var inVal=" ";
              inVal=$(this).val();
            var regex = new RegExp(/^[a-zA-Z ]+$/);
          if(!(regex.test(inVal)||$(this).IsNumeric) ){
                 $(this).val($(this).val().replace(/[^a-zA-zs]/gi, ''))
        }
        });

最新更新