проверить данные формы перед событием нажатия кнопки - PullRequest
0 голосов
/ 19 октября 2018

Я действительно застрял на этом.

У меня есть форма, которая отправляет электронное письмо, для этого необходимо подтвердить ввод.У меня есть какой-то рабочий метод для проверки ввода, функция mail () также работает, также как и кнопка удаления и отправки.

Моя проблема в том, что если вы нажмете кнопку отправки, она должна
сначала проверьте данные (или напечатайте ошибку на инвалиде)
, а затем
покажите всплывающее окно подтверждения Если пользователь действительно хочет отправить письмо .

IПонятия не имею, как этого добиться.

ниже моих фрагментов

назначение значений формы переменным и проверка ввода (я покажу вам только проверку электронной почты, в противном случае отсканированное изображение слишком длинное ивсе проверки работают нормально)

<?php

ini_set("display_errors", "off");


$email = "";
$betreff = "";
$message = "";
$urgend = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

$email = validateEmail($_POST["email"]);
$betreff = validateBetreff($_POST["betreff"]);
$message = validateMessage($_POST["message"]);

if ($urgend = $_POST["urgend"]) {
    $urgend = "dringend";
} else {
    $urgend = "nicht dringend";
}
}

function validateEmail($email)
{

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

    $error = '<p style="color:red; text-align:center"><strong>Ung&uumlltige email formatierung!</strong><br>Beispiel f&uumlr eine g&uumlltige Email: abc@beispiel.de<br></p>';
    echo $error;

} else {

    return $email;
}

}

и моя кнопка "отправить"

 <button type="submit" name="submit" value="submit" onclick="if(!window.confirm('Jetzt senden?')) return false;">
    Senden
</button>

Опять моя цель:

1-я проверка ввода
2-е подтверждение Всплывающее окно
3-я попытка отправить письмо

что он в данный момент делает:

1-еВсплывающее окно подтверждения
2-й подтверждение ввода
3-я попытка отправить письмо

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Попробуйте этот код ниже

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="" id="req_form" method="POST">
<p>Your name: <input type="text" name="email_address" id="email_address" value="" /></p>
<button type="button" name="submit" value="submit" onclick="Process_form();">Senden</button>
</form>
</body>
</html>




<script>

function Process_form()
{

    if($("#email_address").val()=='')
    {
        alert('Enter Email');
    }
    else
    {
        var vali = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        if (vali.test($("#email_address")) == false) 
        {
            alert('Invalid Email Address');

        }
        else
        {
            var r = confirm("Press a button!");
            if (r == true) {
                $( "#req_form" ).submit();
            } 
        }
    }

}
</script>
0 голосов
/ 19 октября 2018

Самое простое решение - использовать проверку полей на основе браузера.Для этого достаточно изменить тип поля, в котором вы принимаете электронную почту (при условии, что вам нужна только поддержка современных браузеров)

<input type = "email" name = "email" placeholder = "E-Mail" />

Но более красивым решением будет использованиеAjax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...