Jak skonfigurować formularz do wysłania, jeśli obszar tekstu ma długość co najmniej 20 znaków?

0

Pytanie

Mam problem, chcę wysłać formularz, gdy obszar tekstowy ma minimalną długość 20 znaków, ale mój kod nie działa. Cały czas po naciśnięciu przycisku zwracana jest wartość false Chcę, aby ten kod nie poszedł po załadowaniu okna i długości pola tekstowego, równej 0

const message = document.querySelector('#message');
         const btn = document.querySelector('.btn');

         f = false;
         t = true;




         const blockBtn = (b) => {
             btn.addEventListener('click', e => {
                 console.log(b);
                 e.returnValue = b;
                 //  console.log(e.returnValue);

             });
         }

         const textArea = function (event) {
             const length = this.value.length;
             console.log(length);
             if (length < 20 || length == null) {
                 blockBtn(f);
             } else {
                 console.log('dziala')
                 blockBtn(t);
             };
         }

         const textAreaWindow = () => {
             const messageValueLength = message.value.length;
             if (messageValueLength == 0) {
                 blockBtn(f);
             }
         }

         message.addEventListener('input', textArea);
         window.addEventListener('load', textAreaWindow);
forms html javascript
2021-11-23 11:25:16
1

Najlepsza odpowiedź

0

Po pierwsze, to:

 f = false;
 t = true;

Jest zbędny (i złe), po prostu powiedz true/false.

Po drugie, nigdy nie usuwasz stare detektory, więc do czasu, gdy pojawi się 20 znaków, twój przycisk uruchomi 20 zdarzeń. To też jest źle.

Zamiast aktualizować detektor za każdym razem, kiedy następuje zmiana, po prostu wprowadź długość pola tekstowego po wciśnięciu przycisku.

2021-11-23 11:37:31

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................