Показать сообщение отдельно
  #7 (permalink)  
Старый 19.09.2019, 02:56
Аспирант
Отправить личное сообщение для Mikael86 Посмотреть профиль Найти все сообщения от Mikael86
 
Регистрация: 01.02.2018
Сообщений: 33

Проблемы со считыванием двухмерного массива обрезает значения
перестроил массив под автоматическую генерацию проверок и вычитку,
попытался прогнать через цикл - не заработало. В консоли при попытке вычитать запросы увидел
интересную картинку - все значения key, name, validator, alert обрезаны до 4х символов.

Сам массив
var json_form = [ 
   ['Фамилия:',       'family', 'validname',  'Ошибка при вводе фамилии!!!'],
   ['Имя:',           'name',   'validname',  'Ошибка при вводе имени!!!'],
   ['Телефон:',       'phone',  'validphone', 'Ошибка при вводе телефона!!!'],
   ['E-mail:',        'mail',   'validmail',  'Ошибка при вводе Email!!!'],
   ['Дата отправки:', 'date',   'validdate',  'Ошибка при вводе даты!!!'],
   ['Check статус:',  'check',  'validcheck', 'Не подтверждено!!!'],
   ['Пол:',           'radio',  'validradio', 'Не выбран ни один элемент!!!'],
   ['Сообщение:',     'text',   'validlenght','Поле не заполнено или превышено количество символов!!!'],
   ['Год рождения:',  'select', 'validselect','Не выбрано']
];

Цикл считывания
$('#form').ready(function(){
  errorcount = 0;
  $.each(json_form, function () {
    $.each(this, function(row, value) {
        key = value[0]; name = value[1]; validator = value[2]; alert = value[3];
        console.log(key + name + validator + alert);
        alert_block = $("<p class='error_block'>"+alert+"</p>");

        var name = document.getElementsByName(name);
        checklabel(name);    
        function checklabel(text){      
          if($(text).next().is('label')) {
            label = $(text).next("label"); 
            $(label).after(alert_block)          
          }
          else {
            $(text).after(alert_block)
          }
        };
    
        $(name).change(function(){eval(validator)($(name))});        
    });
  });
  $("input[name=phone]").mask('+3 (999) 999-99-99');/////////подключение маски телефона
});

Последний раз редактировалось Mikael86, 19.09.2019 в 02:59.
Ответить с цитированием