Cum de a stabili forma pentru a fi trimise atunci când textarea au minlength 20 de caractere?

0

Problema

Am o problema, vreau sa trimis formularul de când textarea au minlength 20 char, dar codul meu nu funcționează. Tot timpul atunci când este apăsat butonul returnează false Vreau ca acel cod nu trimite atunci când fereastra de încărcare și textarea lungime este egal cu 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

Cel mai bun răspuns

0

În primul rând, acest lucru:

 f = false;
 t = true;

Este redundant (și proaste), doar trece adevărat/fals.

În al doilea rând, niciodată nu demontați vechiul ascultători, astfel încât în momentul în care ați scris 20 de caractere butonul este ardere de 20 de evenimente. Acest lucru este, de asemenea, rău.

Mai degrabă decât a actualiza ascultător de fiecare dată când există o schimbare, pur și simplu a obține lungimea de caseta de text, atunci când faceți clic pe butonul.

2021-11-23 11:37:31

În alte limbi

Această pagină este în alte limbi

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