Разбиение функции проверки формы на более мелкие - PullRequest
0 голосов
/ 18 января 2019

У меня есть проверка формы с 8 текстовыми областями - только 1 из них имеет другое условие. 7 из них проверяются, если они имеют менее 140 символов. Я довольно новичок в JavaScript и мне было интересно, как я могу разбить его на 2 функции: 1 для менее чем 140 символов, а другая для подсчета слов.

inputTextAreas.forEach(input => {

     let inputValue = input.value;

      input.classList.remove("error");

      if(input.name == 'question1') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question1);
        }
      } else if (input.name == 'question2') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question2);
        }
      } else if (input.name == 'question3') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question3);
        }
      } else if (input.name == 'question4') {
        if (questionFourWordCount.length < 2 || questionFourWordCount.length > 7) { 
          $self.outputInputError(input,inputTextAreasErrors.question4);
        }
      } else if (input.name == 'question5') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question5);
        }
      } else if (input.name == 'question6') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question6);
        }
      } else if (input.name == 'question7') {
        if (input.value.length < 10 || input.value.length > 140) {
          $self.outputInputError(input,inputTextAreasErrors.question7);
        }
      } else {
        if (input.name == 'question8') {
          if (input.value.length < 10 || input.value.length > 140) {
            $self.outputInputError(input,inputTextAreasErrors.question8);
          }
        }
      }
    });

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Вы можете заменить else, если следующим образом воспользуетесь доступом к свойству объекта, используя обозначение в скобках

if (input.name === 'question4') {
    if (questionFourWordCount.length < 2 || questionFourWordCount.length > 7) {
        $self.outputInputError(input, inputTextAreasErrors.question4);
    }
} else {
    if (input.value.length < 10 || input.value.length > 140) {
        $self.outputInputError(input, inputTextAreasErrors[input.name]);
    }
}
0 голосов
/ 18 января 2019
inputTextAreas.forEach(input => {

 let inputValue = input.value;

  input.classList.remove("error");

  if(input.name == 'question1' || input.name == 'question2' || input.name == 'question3' || input.name == 'question5' || input.name == 'question6' || input.name == 'question7' || input.name == 'question8') {
    if (input.value.length < 10 || input.value.length > 140) {
      $self.outputInputError(input,inputTextAreasErrors.input.name);
    }
  } else{
    if (questionFourWordCount.length < 2 || questionFourWordCount.length > 7) { 
      $self.outputInputError(input,inputTextAreasErrors.input.name);
    }
  }
});

Я думаю, что подойдет. Я также изменил имя динамически. Дайте мне знать, если это работает или нет. Там не так много информации об этом коде. Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...