Обязательные поля в форме не работают

Я пытаюсь сделать форму подписки только с вводом в качестве адреса электронной почты.
Во-первых, я использовал html и php, где он сохранял идентификатор электронной почты, а также проверял необходимые параметры, такие как ‘@’ а также ‘.’ и т.п.

Например, email-id = «d» показал ошибку

Но как только я добавил ajax, он позаботился о том, чтобы в таблице существовал email-идентификатор, который показал, что уже подписан, но функция параметра require перестала работать.

Вроде email-id = «d» тоже сработало

Код выглядит следующим образом:

index.html

<form  class="searchform" method ="post" >
<input id="email" type="email" name="email" required="required" />
<button id="submit" type="submit"> </button>
</form>

Ajax-файл: script.js

$(document).ready(function(){
$("#submit").click(function(){

var email = $("#email").val();

var dataString =  '&email='+ email ;
if(email=='')
{
alert("Please Fill All Fields");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "email.php",
data: dataString,
cache: false,
success: function(result){
alert(result);
}
});
}
return false;
});
});

Код базы данных Php: email.php

<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
$username = "myusername";
$password = "mypassword";
$hostname = "localhost";
$dbname= "mydbname";

//connection to the database
$dbhandle = mysqli_connect($hostname, $username, $password,$dbname);
if(! $dbhandle )
{
die('Could not connect: ' . mysql_error());
}
$email=$_POST['email'];

$sql = "INSERT INTO  email_table". "(email)". "VALUES ('$email')";

if (mysqli_query($dbhandle, $sql)) {
echo "You have subscribed successfully";
} else {
echo "You have already been subscribed";
}
?>

0

Решение

jQuery / JS ничего не знает о проверке формы HTML. Поэтому вам нужно проверить его с помощью jQuery / JS, например:

$('#submit').click(function(){
if($("form")[0].checkValidity()) {
//your form execution code
}else console.log("invalid form");
});

Проверка HTML5 перед отправкой ajax

Вы также можете обработать ответ из файла PHP, используя AJAX, чтобы проверить, был ли он пустым.

$.ajax({
url: url,
type: type,
data: data,
success: function(response) {
$(".class").html(response);
}
});

файл PHP может быть:

if ($_POST['email'] == "") {
echo 'Please enter an email';
}

«Пожалуйста, введите адрес электронной почты» будет ответом об ошибке, и он будет помещен внутри того, что имеет класс = ‘класс’

0

Другие решения

Вы не должны required="required", просто required внутри вашего <input> тег.

0

По вопросам рекламы [email protected]