簡體   English   中英

如何只允許文本輸入中的數字但允許帶有 JavaScript 的命令?

[英]How to allow only numbers on a text input but allow commands with JavaScript?

在尋找只允許文本輸入數字的方法時,您通常會得到類似以下內容的信息:

function keyPressEvent (e) {
    var keyCode = e.which || e.keyCode;
    if (keyCode < 48 || keyCode > 57) {
        return false;
    }
}

但問題是,這使得只執行命令的鍵不起作用。 backspacedelete開始,甚至是ctrl + af5 我知道我可以為所有這些創建例外,但我認為這將是浪費時間。 有什么簡單的方法可以做我想做的事嗎? 有沒有像檢測將添加到文本中的字符而不是按下的鍵?

我實際上采用了一種方法,讓用戶鍵入/輸入他們想要的任何內容,然后手動將值強制為數字。 像這樣的東西(它是一個 jQuery 項目,但這個想法可以很容易地在沒有 jQuery 的情況下重用)。

fieldJq.bind('click keyup change blur focus', function (ev) {
  var curVal = $(this).val();
  $(this).val(curVal.replace(/[^0-9\.]/g, ''));
});

這里的想法是我讓他們將他們想要的任何東西放入其中(因此沒有機會破壞復制/粘貼等控制命令)但是在對其進行任何更改之后我刪除任何不是數字或小數的東西觀點。 此時它不是 100% 防火的(10.0.0 不是無效的)但它至少在最初確實接近。 如果您不需要浮點支持並且可以刪除\. 從正則表達式你有一個強制數字輸入。

暫無
暫無

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

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