Jak nastavit formulář, který bude odeslán, když textarea mít min. délka 20 znaků?

0

Otázka

Mám problém, chci, aby poslal formulář, když textarea mít min. délka 20 char, ale můj kód, ne pracovní. Pokaždé, když stisknete tlačítko, vrátí false Chci ten kód dont poslat, když okno načíst a textarea délka se rovná 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

Nejlepší odpověď

0

Za prvé, tato:

 f = false;
 t = true;

Je zbytečné (a špatné), jen projít true/false.

Za druhé, nikdy odstranit staré posluchači, takže v době, kdy jste zadali 20 znaků tlačítko střílí 20 událostí. To je také špatné.

Spíše než aktualizace posluchače pokaždé, když se něco změní, prostě si délku textového pole po klepnutí na tlačítko.

2021-11-23 11:37:31

V jiných jazycích

Tato stránka je v jiných jazycích

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