0

ユーザーが入力ボックスに同じ番号を 2 回入力するのを防ぐために javascript/jquery を使用する方法はありますか? ユーザーは必要な数の数字を (一度に 1 つ) 入力できますが、同じ数字を 2 回目に入力しようとした場合は、ユーザーに警告するか、他のアクションを実行する必要があります。私は配列を作成しようとしました:

 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 句は起動しません。

4

2 に答える 2

1

あなたの変数は関数にnumbersスコープされているように見えるので、設定されているインスタンス化された変数は関数によってのみアクセス可能です。このコードは、グローバル変数なしでやろうとしていることを達成し、キー イベントをインターセプトしてキャンセルすることで、重複した数値が入力されるのを防ぎます。history()numbershistory()numbers

$("#inputBox").on("keydown", function(e) {
    var numbers = $(this).val();
    var c = String.fromCharCode(e.keyCode);
    return ~numbers.indexOf(c);
});
于 2013-08-05T01:05:57.983 に答える
1

もしかして、こういうこと?コードに含まれているため、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());
    }
});

ユーザーが新しい番号を追加するためにクリックしなければならないボタンがあればもっと良いでしょう。そうしないと、かなり面倒です。

于 2013-08-05T03:46:36.437 に答える