Перейти к содержанию

Дядя Шарик

Пользователь
  • Постов

    2
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Дядя Шарик

  1. Сделал в ocStore 3.0.3.7 + симпл - 1 строка адреса с DaData, которая заполняет остальные поля

     

    // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup
    var token = "";
    
    // Для блока адресс берем в переменные нужные инпуты
    var $city = $('input[name*="city"]');
    var $address = $('input[name*="address_1"]');
    //var $postcode = $('input[name*="postcode"]');
    var $region= $('select[name*="zone_id"]');
    var $countryId = $('select[name*="country_id"]');
    
    
    // Для блока имени, фамилия
    function initName($surname, $name) {
        // Если инпута фамилия или имя нету, выходим
        if (!$surname.length || !$name.length) return;
        var self = {};
        self.$surname = $surname;
        self.$name = $name;
        var fioParts = ["SURNAME", "NAME"];
        $.each([$surname, $name], function (index, $el) {
            var sgt = $el.suggestions({
                token: token,
                type: "NAME",
                triggerSelectOnSpace: false,
                hint: "",
                noCache: true,
                params: {
                    // каждому полю --- соответствующая подсказка
                    parts: [fioParts[index]]
                }
            });
        });
    };
    // Для блока имени, фамилия вызов
    var $surname = $('input[name*="lastname"]');
    var $name = $('input[name*="firstname"]');
    
    initName($surname, $name);
    
    // Для блока email с проверкой есть ли данный инпут
    var $email = $('input[name*="email"]');
    if ($email.length) {
        $email.suggestions({
            token: token,
            type: "EMAIL",
        });
    }
    
    function join(arr /*, separator */) {
      var separator = arguments.length > 1 ? arguments[1] : ", ";
      return arr.filter(function(n){return n}).join(separator);
    }
    
    function showRegion(address) {
        var findRegionValue = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase();
        if ($region.length) {
            $region.find('option').each(function (i, o) {
                if ($(o).text().toLowerCase().search(findRegionValue) >= 0) $(this).attr('selected', true);
                else $(this).attr('selected', false);
            });
        }
    }
    
    
    function showCity(address) {
      $city.val(join([
        join([address.city], " "),
        join([address.settlement_type, address.settlement], " ")
      ]));
    }
    
    function showAddress(address) {
      $address.val(join([
        address.street_type, address.street, 
        address.house_type, address.house, 
        address.block_type, address.block, 
        address.flat_type, address.flat], " ")
       );
    }
    
    function showSelected(suggestion) {  
      $countryId.val(176);
      var address = suggestion.data;  
      //showPostalCode(address);
      showRegion(address);  
      showCity(address); 
      showAddress(address); 
    }
    
    $("#shipping_address_field20").suggestions({
      token: token,
      type: "ADDRESS",
      onSelect: showSelected
    });

     

×
×
  • Создать...