Остановите автоматическую отправку формы на KEYUP и заставьте onSub () работать, когда удовлетворена только onCheck () - PullRequest
0 голосов
/ 29 августа 2018

Здесь приведенный ниже код проверит правильность адреса электронной почты, если введенное письмо соответствует шаблону, на котором будет показан действительный адрес электронной почты. Я использовал keyup () событие я знаю, что оно отправит форму после сопоставления с шаблоном, потому что я включил onSub () в onCheck () . Но я хочу, чтобы document.otp.submit () должен работать только при нажатии на кнопку, но он должен работать только тогда, когда onCheck () удовлетворен.

 <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    </head>
    <script type="text/javascript">

    function onCheck() {
        var pattern = /^\S+@\S+\.\S+$/;
        var a=document.getElementById('email').value;
            if (pattern.test(a)) {
                document.getElementById('messages').style.color = 'green';
                document.getElementById('messages').innerHTML = "valid email id";
                onSub();
            } else {
                document.getElementById('messages').style.color = 'red';
                document.getElementById('messages').innerHTML = "invalid email id";
            } 
        }
    function onSub(){

        document.otp.submit();
    }
    </script>

    <body style="align:center">
<form name="otp" action="Otp" method="get">
    <label for="Email"><b>Email</b></label>
        <input type="email" id="email" name="email" onkeyup="onCheck()" placeholder="Enter Email.." ><span id='messages'></span><br><br>
        <button type='button' onclick="onSub()">Send OTP</button>
    </form>
    </body>
    </html>

1 Ответ

0 голосов
/ 29 августа 2018

Просто вызовите onCheck () внутри onSub ():

function onCheck() {
  var pattern = /^\S+@\S+\.\S+$/;
  var a = document.getElementById('email').value;
  if (pattern.test(a)) {
    document.getElementById('messages').style.color = 'green';
    document.getElementById('messages').innerHTML = "valid email id";
    return true;
  } else {
    document.getElementById('messages').style.color = 'red';
    document.getElementById('messages').innerHTML = "invalid email id";
    return false;
  }
}

function onSub() {
  if (onCheck())
    document.otp.submit();
}
  <form name="otp" action="Otp" method="get">
    <label for="Email"><b>Email</b></label>
    <input type="email" id="email" name="email" onkeyup="onCheck()" placeholder="Enter Email.."><span id='messages'></span><br><br>
    <button type='button' onclick="onSub()">Send OTP</button>
  </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...