Jump to content
  • 0

Dodatkowe pole "Powtórz e-mail" w formularzu rejestracji


marcinp1984

Question

5 answers to this question

Recommended Posts

  • 0

PrestaShop 1.7 ma fajne nowe hooki służące do rozbudowywania formularz danych klienta i tak się składa, że użyłem go do zrobienia modułu dodającego dodatkowe pole właśnie na potwierdzenie adresu E-mail wraz z walidacją czy się one ze sobą zgadzają.

Tak to wygląda:

1556043438_2023-02-0809_38_41-Window.png.41a99e1db9e7a5b3ab8359bf37626020.png

W razie zainteresowania zapraszam :)

Link to comment
Share on other sites

  • 0
2 godziny temu, get3code napisał:

Walidację wykonujesz dodatkowo. Tutaj masz moduł który pozwoli dodać dodatkowe pole:

https://www.sunnytoo.com/12829/free-prestashop1-7-module-custom-fields-registration

Na pierwszy rzut oka wygląda ok i bardzo fajnie się to dodało. Tylko teraz pytanie jak się do tego dobrać aby jakoś sprawdzić czy te pola są takie same i wyrzucić ewentualny błąd :)

Link to comment
Share on other sites

  • 0

JS nie jest moją mocną stroną ale coś tam zdarzy mi się naskrobać. Zasugerowałem się tym, że wspomniałeś o tym, że walidację trzeba sobie dopisać i nawet nie próbowałem się rejestrować. Ale do momentu, gdy zobaczyłem ten fragment kodu, w którym widać, że jednak adresy mailowe są porównywane.

$(document).ready(function() {
    $('.st_reg_terms_link').on('click', function(event) {
        event.preventDefault();
        var url = $(event.target).attr('href');
        if (url) {
          url += '?content_only=1';
          $.get(url, function(content) {
            $('#st_reg_modal').find('.js-modal-content').html($(content).find('.page-cms').contents());
          }).fail(function(resp){
          });
        }

        $('#st_reg_modal').modal('show');
      });
    $(document).on('submit', '#customer-form', function () {
      var email_address = $(this).find('input[name="email"]').val();
      if(!email_address || (email_address && !/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,5}$/.test(email_address))){
        $(this).find('input[name="email"]').closest('.form-group').addClass('has-danger');
        $(this).find('.js-submit-active').removeClass('disabled active');
        return false;
      }
      if($('#customer-form input[name="confirm_email"]').length){
        var confirm_email_address = $(this).find('input[name="confirm_email"]').val();
        if(!confirm_email_address || (confirm_email_address && !/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,5}$/.test(confirm_email_address))){
          $(this).find('input[name="confirm_email"]').closest('.form-group').addClass('has-danger');
          $(this).find('.js-submit-active').removeClass('disabled active');
          return false;
        }
        if(confirm_email_address!=email_address){
          $(this).find('input[name="email"]').closest('.form-group').addClass('has-danger');
          $(this).find('input[name="confirm_email"]').closest('.form-group').addClass('has-danger');
          $(this).find('.js-submit-active').removeClass('disabled active');
          return false;
        }
      }
    });
    if($('#customer-form input[name="confirm_email"]').length){
      $('#customer-form input[name="confirm_email"]').closest('.form-group').insertAfter($('#customer-form input[name="email"]').closest('.form-group'));
    }
});

Więc spróbowałem się zarejestrować podając różne adresy mailowe i wszystko pięknie działa :) Dzięki wielkie :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...