Запретить отправку формы для неверного адреса электронной почты - PullRequest
0 голосов
/ 07 июня 2018

Я использую этот инструмент: https://www.edq.com/real-time-email-validation/

... для проверки того, что адрес электронной почты действительно существует.

Этот инструмент работает правильно, но пользователь все равно может отправить форму, даже если проверка не пройдена.Что мне нужно добавить в код, чтобы пользователь не мог отправить форму, если он ввел адрес электронной почты, который не работает?

Фрагмент кода для выполнения проверки:

<script type="text/javascript">

        var $plugin = new emailValidation(              
          $( "#email"), {
            token: "[hidden]",
            proxyPath:  "[hidden]",
            featureVersion:  "1.0" ,
            timeout: 10000,
            inlineMode: true,
            showLoading: true,
            onSuccess: function (data) {
            // onSuccess callback implementation
            },
            onError: function (jqXHR, status, errThrown) {

            },
            messages: {
                emptyEmail:  "Please enter email.",
                error:  "Please contact Experian QAS support.",
                timeout:  "Timeout.",
                success: "yay!"
            },
            styles: {
                success: "success",
                successInline: "success-inline",
                error: "error",
                errorInline: "error-inline",
                loading: "loading",
                correctionEmail: "correctionEmail",
                emailPicklistHeader: "emailPicklistHeader",
                emailPicklist: "emailPicklist",
                picklistItem: "picklistItem",
                picklistItemText: "picklistItemText",
                closeButton: "closeButton",
            }
          }
      );


        </script> 

1 Ответ

0 голосов
/ 07 июня 2018

Ключ в виджете событий: onSuccess и onError.Используя их, вы можете сделать это разными способами, например:

  1. Отключение кнопки отправки:

    onSuccess: function (data) {
        $('#mySubmit').prop("disabled", null);
    },
    onError: function (jqXHR, status, errThrown) {
        $('#mySubmit').prop("disabled", "disabled");
    }
    
  2. Предотвращение отправки формы:

    onSuccess: function (data) {
        $('#myForm').data("email-ok", true);
    },
    onError: function (jqXHR, status, errThrown) {
        $('#myForm').data("email-ok", false);
    }
    
    // On form
    $("#myForm").on("submit", function(e) {
        if (!$(this).data("email-ok")) {
            e.preventDefault();
            // show an error message 
        }
    });
    

В обоих случаях вам придется дождаться ответа службы и затем управлять своей формой.Я думаю, что вариант № 2 лучше, но № 1 тоже хорошо.

...