Saya memiliki bidang input yang dihasilkan sistem yang mengharapkan nilainya numerik & lebih dari 1.000.

Ini HTML untuk bidangnya

<input type="text" name="fr_goal" id="fr_goal" value="" size="15" maxlength="15">

Saya menjalankan JS ini yang membuat saya hampir sampai ke sana, TETAPI saya tidak dapat benar-benar mengetahui apakah nilainya lebih besar atau sama dengan 1000 nilai minimum yang saya butuhkan.

               $('#fr_goal').on('keyup', function(evt) {
                    $("#fr_goal").removeClass('don-active');
                    var value = evt.target.value;
                    if (value.length === 0) {
                        evt.target.className = 'invalid-amount';
                        return;
                    } 
                   else if ($.isNumeric(value) && value >= 1000) {
                        evt.target.className = 'valid-amount';

                    } 
                    else {
                        evt.target.className = 'invalid-amount';
                        $(this).val('');
                        $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                    }
                }); 

Sekarang else if adalah hasil yang saya inginkan, idealnya saya tahu itu numerik dan lebih dari 1000.

Tetapi yang terjadi adalah begitu saya memasukkan angka, defaultnya adalah kasus lain saya karena jumlahnya kurang dari 1000.

Adakah yang tahu cara mendengarkan input itu setelah tidak "aktif" atau digunakan untuk melihat apa yang dimasukkan ke dalamnya?

Idealnya, saya tidak harus bergantung pada pengiriman formulir untuk mendapatkan konten bidang dan kemudian menampilkan pesan kesalahan. Saya ingin bisa melakukan semuanya "real-time"

Bantuan apa pun sangat dihargai!

0
HisPowerLevelIsOver9000 28 Oktober 2019, 20:53

1 menjawab

Jawaban Terbaik

Terima kasih kepada Calvin karena menyarankan blur.

Saya menyimpan semuanya dari pertanyaan awal hampir persis sama, hanya mengubah yang lain jika hanya mencari numerik.

Setelah bidang input tidak aktif, fungsi ini berjalan, dan menyelesaikan masalah saya dengan sempurna.

$('#fr_goal').blur(function(eval) { 
                var userInput = eval.target.value;
                console.log("the inputted amount was" + userInput);
                if (userInput >= 1000) {
                    eval.target.className = 'valid-amount';
                }
                else {
                    eval.target.className = 'invalid-amount';
                    $(this).val('');
                    $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                }
            });
0
HisPowerLevelIsOver9000 28 Oktober 2019, 18:26