簡體   English   中英

html 的按鍵事件在移動設備中不起作用

[英]Key press event of html is not working in mobile devices

 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>

這只是一段代碼。

我包含了一些輸入標簽,它們都有不同的按鍵事件,然后我將它上傳到現場,它在所有瀏覽器中都可以正常工作,但是當我嘗試在手機或平板電腦中打開我的頁面時,它無法正常工作。

即使警報在瀏覽器中工作,但我在 keydown 上保留了名字的驗證,該用戶只能輸入字母(不允許使用數字和特殊字符)

在移動瀏覽器中, 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驗證的最佳解決方案是使用keyup函數並使用regex表達式驗證代碼如下(這個regex只允許字母),注意android不支持preventDefault(); 方法

$( "#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-z\s]/gi, ''))

        }
        });

使用 oninput: 而不是 onkeypress:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM