вернуть ложь, но отправить - PullRequest
0 голосов
/ 23 января 2019

я пытаюсь решить эту проблему двумя способами

<form method="post">
    <input type="text" id="testId" name="testId" placeholder="Email"  />
    <button id="btnValidate" type="submit" onclick="return check();">subscribe</button>
</form>

, а другой способ -

<form method="post" onsubmit="return check();">
    <input type="text" id="testId" name="testId" placeholder="Email"  />
    <button id="btnValidate" type="submit">subscribe</button>
</form>

мой js

 function check() {      

    var email = document.getElementById("testId").value;

    var exptext = /^[A-Za-z0-9_\.\-]+@[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/;

        if(exptext.test(email)==false){


        alert("error");

        document.addjoin.email.focus();

        return false;

    }else{
        alert("complete");

        return true;            
    }

}

предупреждение показывает «ошибка»но отправьте неправильный адрес электронной почты.

Что я сделал не так?

Ответы [ 2 ]

0 голосов
/ 23 января 2019
<form method="post" id="form">
  <input type="text" id="testId" name="testId" placeholder="Email"  />
  <button id="btnValidate" type="submit">subscribe</button>
</form>

<script>
  let form = document.querySelector('#form');
  form.addEventListener('submit', function(e) {
    e.preventDefault();
    check();
  });
</script>
<script>
   function check() {      

    let email = document.getElementById("testId").value;

    let exptext = /^[A-Za-z0-9_\.\-]+@[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/;

    if(exptext.test(email) === false){

      alert("error");

      document.addjoin.email.focus();

      return false;

    } else {
      alert("complete");

      return true;            
    }

  }

</script>

Это должно работать

0 голосов
/ 23 января 2019

Вам просто нужно удалить onclick="return check();"

Тогда вам просто нужно добавить document.getElementById("btnValidate").onclick = check; к вашему js, и оно будет работать

...