簡體   English   中英

HTML5輸入類型編號不能阻止加號,減號

[英]Html5 input type number not prevent plus, minus symbols

我正在使用輸入類型數字,並且它是防止字符,但是無法防止加號,減號或字符。 但是我要求防止所有符號。

<input type="number">

我已經處理了它並創建了我的自定義正則表達式,並且可以正常工作,但是我想知道為什么輸入類型編號可以正常工作,以及如何解決該問題。

您可以使用簡單的最低數量限制來做到這一點。 像這樣:

<input min="0" type="number" step="1">

現在添加+-號使字段值無效,而step=1則用於只需要無符號整數的情況。 如果不需要,只需將其刪除。

編輯

如果您不想在字段中顯示+-號,並且不接受該輸入,則需要使用一些js。 這是我認為最簡單的純js解決方案:

您的html代碼:

<input min="0: type="number" step="1" onkeypress="removeSigns()" id="my-input">

現在,您需要將此小腳本添加到頁面中:

function removeSigns() {
    var input = document.getElementById('my-input');
    input.value = parseInt(input.value.toString().replace('+', '').replace('-', ''))

該腳本獲取具有my-element id my-element ,然后覆蓋其值。

新值是舊值的int版本,將+-替換為空字符串(實際上將其從字符串中刪除)。 該解決方案是好,當你只有一個輸入,如果你有更多數量的輸入,你應該改變removeStrin一個版本,讓輸入對象,從thisonkeypress 但是由於解決方案的簡單性,我不添加該版本。 }

因為這正是規范所說的應該工作的方式。 輸入的數字可以接受浮點數 ,包括負eE字符:

浮點數由以下幾部分組成,按照以下順序:

  1. 可選地,第一個字符可以是“ - ”字符。
  2. 一個或多個字符,范圍為​​“ 0—9 ”。
  3. (可選)以下部分,按完全相同的順序排列:
    1. 一個.字符
    2. 一個或多個字符,范圍為​​“ 0—9
  4. (可選)以下部分,按完全相同的順序排列:
    1. 一個“ e ”字符或“ E ”字符
    2. (可選)“ - ”字符或“ + ”字符
    3. 一個或多個字符,范圍為​​“ 0—9 ”。

您可以使用jquery做到這一點

$('input').keypress(function (e) {
    var txt = String.fromCharCode(e.which);
    if (!txt.match(/[0-9]/)) {
        return false;
    }
});

暫無
暫無

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

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