Не получение чека для отправки после остановки отправки

Я пытаюсь проверить, что поле электронной почты имеет определенный домен с электронной почтой, чтобы только люди из этой компании могли войти в этот магазин, который мы делаем для них. Я проверяю значение ввода и ищу в строке значение домена. эта часть работает, я предотвращаю действие default и не отправляю форму, но когда значение найдено, я хочу отправить, но оно все еще предотвращает его от отправки. Это может быть просто после долгого дня решения таких проблем, как это или что-то глупое в моем коде…пожалуйста посоветуйте:

<script>
  $("#Email")
    .keyup(function() {
      var value = $(this).val();
      var n = value.search("@atlanticbay.com");
      if (n <= 0) {
        $(".btn").click(function(event) {
          event.preventDefault();
          console.log("prevented");
        });

      } else {
        $(".btn").submit(function() {
          console.log("we are good");

        })

        console.log(n);
      }
    })
    .keyup();

</script>

1 ответ

    1. Поиск val () после отправки.
    2. Сначала предотвратите значение по умолчанию, так как вы запрещаете браузеру делать то, что он будет делать, с проверкой на стороне клиента или без нее
    3. Используйте шаблоны вместо поиска, ваша проверка завершится неудачей с входными данными, такими как » @atlanticbay.com@yahoo.com»
    4. Так как вы уже находитесь в submit, вы можете передать свои значения на сервер с помощью ajax, так как вы предотвратили поведение браузера по умолчанию.
    5. В конце код будет выглядеть следующим образом

    $("#email").on('submit', function(e){
    	e.preventDefault();
    	var input = $(this).val();
    	var match = input.match(/^\w+@atlanticbay.com$/i);
    	if(typeof match != 'null'){
                console.log("we are good");
    			// add submit codes here..probably ajax
    		}
        console.log("prevented");
    });