Javascript переопределяет первое значение и отображает второе значение в условии If - PullRequest
0 голосов
/ 10 июня 2019

Я проверяю значение электронной почты из таблицы и принимаю это значение за data.Email, но если у меня несколько недопустимых идентификаторов электронной почты, тогда будет отображаться только последнее неверное значение электронной почты как недействительное.

tabledata.DataTable.forEach(function (data, index) {
    var emailValue = data.Email
    var emailRegex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      if (!emailRegex.test(emailValue)) {                                                           
        $("#importNext").attr("disabled", true);
             $("#modaldescription2").empty();
             $("#dialogModelHeader2").html("Import Wizard");
             $("#modaldescription2").append("<p> invalid email records</p>" + "<b style='color: red'>" + (index + 1) + "</b>" + " , " + "<b style='color: red'>" + emailValue + "</b>");
             $('#dialogPanel2').modal({
                 dimmerSettings: {
                      variation: 'inverted'
                    }
              }).modal("show");

       }
     }

См. Изображение ниже. У меня есть два недействительных сообщения электронной почты из вышеуказанного метода, оно показывает только 2-е письмо как недействительное, хотя первое также недействительно

image

1 Ответ

0 голосов
/ 10 июня 2019

Я создал небольшой скрипт, который работает с вашим регулярным выражением.Это чистый JavaScript (даже легче читать, чем пример JQuery).Как вы можете видеть (при запуске), две опции отключены.

Ваш код не выполняется при условии IF.Поскольку вы не включили весь код, вероятно, это ошибка.Это может привести к ошибкам в коде:

1) Возможно, вы нацеливаетесь: #importNext, и этот нацеливается на последний вариант в поле выбора.Может быть только один элемент с этим идентификатором.

2) Ошибка может быть в этой части кода, но я не совсем понимаю, для чего вы здесь делаете:

    $("#modaldescription2").
    $("#dialogModelHeader2").html("Import 
    $("#modaldescription2").append("<p> invalid email records</p>" + 
      "style='color: red'>" + (index + 1) + "</b>" + " , " + "<b style='color: 
       red'>" + emailValue + "</b>");


         $('#dialogPanel2').modal({
             dimmerSettings: {
                  variation: 'inverted'
                }
          }).modal("show");

Это упрощенный рабочий пример, запустите перо:

let regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

let emails = ['kenan@gmail.com1', 'kenan@gmail.com2', 'kenan@gmail.com']

emails.forEach(email => {
  let option = document.createElement('option');
  option.appendChild( document.createTextNode(email) )
  if(!regex.test(email)){
    option.disabled = true;
   }
  document.getElementById('select').appendChild(option);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form>
  <ul>
    <select multiple id="select">
    
    </select>
  </ul>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...