Как отправить каждый класс? - PullRequest
0 голосов
/ 10 июля 2020

У меня много текстовых полей, я хочу проверить длину ввода. если не более 10 слов, не могу отправить. Он предупредит, но все равно отправит.

function checkinput(){
  $('.TextArea').each(function() {
      var textl = $(this).val().length;
      if ( textl < 10 && (EndTime.getTime()-Time != 0)) {
          window.alert ( "answer need large 10 word!" );
          return false;
      }
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

 <form method="POST" action="answer.php" id="form" onsubmit="return checkinput();">

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

function checkinput() {
  //create an event listener for click on your submit button 
  $('#submit').click(function(e) {
    // define a variable to hold textareas
    let $Textarea = $('.TextArea');
    // run a loop on each textarea
    $Textarea.each(function(i, v) {
      // variable for each instance of textarea being triggered using keyword this
      let input = $(this).val();
      // split the value at each word using a blank space
      let words = input.split(' ');
      // check the length of the split array and see if there is 10 values present
      if (words.length < 10) {
        window.alert("Textarea " + i + " - answer need large 10 word!");
        // preventDefault() keeps the form from submitting and refreshing the DOM    
        e.preventDefault();
        return false;
      }
    });
  });
}


checkinput();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form method="POST" action="answer.php" id="form">
  <textarea class='TextArea'></textarea>
  <textarea class='TextArea'></textarea>
  <textarea class='TextArea'></textarea>
  <textarea class='TextArea'></textarea>
  <button id='submit'>Submit</button>
</form>
0 голосов
/ 10 июля 2020

Добавить event.preventDefault() для случаев, когда функция возвращает false;

function checkinput(event){
  $('.TextArea').each(function() {
      var textl = $(this).val().length;
      if ( textl < 10 && (EndTime.getTime()-Time != 0)) {
          event.preventDefault();
          window.alert ( "answer need large 10 word!" );
          return false;
      }
  });
  return true;
}
...