簡體   English   中英

只允許輸入一次輸入數字

[英]Only allow number to be entered once in input

有沒有辦法使用javascript / jquery來阻止用戶在輸入框中輸入兩次相同的數字? 用戶可以輸入任意數量的數字(一次一個),但如果他們嘗試再次輸入相同的數字,我需要提醒用戶/采取其他操作。 我試過創建一個數組:

 function history() {
 var numbers = [];
 numbers.push(document.getElementById('inputBox').value);
 }  

然后運行:

 var n = document.getElementById('inputBox').value;
 if ($.inArray(n, numbers)> -1) {
   // alert, do something
 }

但是新的數組('numbers')永遠不會被用戶輸入填充,所以if子句永遠不會觸發。

看起來你的numbers變量的作用域是history()函數,所以正在設置的numbers變量instanced只能由history()函數訪問。 此代碼將完成您在沒有全局numbers變量的情況下嘗試執行的操作,並通過攔截和取消鍵事件來防止輸入任何重復的數字。

$("#inputBox").on("keydown", function(e) {
    var numbers = $(this).val();
    var c = String.fromCharCode(e.keyCode);
    return ~numbers.indexOf(c);
});

也許是這樣的事情? 我假設您使用的是jQuery,因為代碼中的$.inArray

var numbers = [];
$('#inputBox').change(function () {
    if ($.inArray($(this).val(), numbers)) {
        // Alert the user/take other action
    } else {
        // Otherwise, add it to the array of numbers
        numbers.push($(this).val());
    }
});

如果有一個按鈕,用戶必須單擊以添加新號碼會更好。 否則,它會很煩人。

暫無
暫無

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

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