Это должна быть очень простая функция для реализации в моем коде PHP
Но по какой-то причине я не могу заставить его работать.
Я создаю две функции для моего атрибута электронной почты:
первая функция должна проверять синтаксис / формат письма и обеспечивать его правильность
Затем вторая функция должна сравнить два поля электронной почты (первое поле — электронная почта, второе поле — «подтвердить электронную почту»). Если пользователь введет два разных электронных письма, он получит ошибку.
Вот две функции (javascript):
function validateEmail() {
var email = document.getElementById("email").value
if (!filter_var(email, FILTER_VALIDATE_EMAIL))
{
alert("You have entered an invalid email address !");
return false;
}
return true;
}function confirmEmail() {
var email = document.getElementById("email").value
var email2 = document.getElementById("email2").value
if (email != email2) {
alert('The email addresses you entered do not match !');
return false;
}
return true;
}
Странная вещь: вторая функция работает отлично. Тем не менее, первый нет.
Для второй функции я добавил следующее свойство в форму: onSubmit = «return verifyEmail ()»
Для первой функции у меня НЕТ ИДЕИ, что делать ((((
Я также попытался добавить его в форму: onSubmit = «return verifyEmail () && подтвердить адрес электронной почты()»
Но не повезло.
Во-вторых, я попытался добавить первую функцию к самому атрибуту email в форме:
Все еще не работает.
Итак, я решил попробоватьOnKeyUp«
(На самом деле, это немного глупо; потому что это означает, что: функция сработает в тот момент, когда пользователь начинает вводить в поле электронной почты. Это бессмыслица. Функция должна работать только после пользователь ввел адрес электронной почты и перешел к следующему полю в форме)
В любом случае, поскольку JavaScript не работал, я решил попробовать простой PHP.
Я нашел это в Google:
<?php
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
?>
И до сих пор не работает. Я понятия не имею, что я делаю не так.
(а) я неправильно называю Javascript?
(б) я использую код PHP где-то, я не должен его использовать ??
В общем, я в растерянности.
ОБНОВИТЬ :
Пожалуйста, игнорируйте ту бессмыслицу PHP, которую я написал внутри функции JavaScript
Это была ошибка.
Вот фактическая функция JS для validateEmail:
function validateEmail() {
var email = document.getElementById("email").value
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]
{2,4})+$/;;
if (email.val() == '' || !filter.test(email.val()))
{
alert('You have entered an invalid email address !!');
email.focus();
return false; }
return true; }
И, пока мы обсуждаем эту тему, возможно, мне следует остановиться подробнее.
Ранее я создал третью функцию электронной почты ……….., чтобы определить, существует ли введенная электронная почта уже в базе данных MySQL.
Вот функция, которую я использовал:
<SCRIPT type="text/javascript">
$(document).ready(function() {
var min_chars = 4;
var characters_error = 'You must enter a minimum of 4 characters!';
var checking_email = 'Checking Email Validity....';
$('#email').keyup(function(){
//run the character number check
if($('#email').val().length < 4) {
$('#email_availability_result').html(characters_error); }
else{
$('#email_availability_result').html(checking_email);
check_email();
}
});
});//function to check email AVAILABILITY in database
function check_email(){
var email = $('#email').val();
var button_check_email=true;
//use ajax to run the check
$.post("check.php", { email: email },
function(email_result){
//if the result is 1
if(email_result == 1){
//show that the email is available
button_check_email=false;
document.getElementById("submit").disabled = false;
$('#email_availability_result').html('that email is available');
}else{
button_check_email=true;
document.getElementById("submit").disabled = true;
$('#email_availability_result').html('Email address [' + email +
'] is already registered in our database.');
}
});
}
</SCRIPT>
Этот скрипт также отлично работает.
Однако первая часть сценария — пустая трата времени.
Не было необходимости вставлять функцию для подсчета «количества символов»
(HTML предоставляет свойство «minlength» для значений данных)
Итак, что мне нужно сделать, это полностью удалить эту часть и каким-то образом заменить ее на что-то более полезное …………, например: проверка ДЕЙСТВИТЕЛЬНОСТИ адреса электронной почты.
Беда в том, что я пытался, но только испортил код))))
Вы вызываете filter_var в своем коде JavaScript. Filter_var — это php-функция, о которой javascript ничего не знает.
Вы можете сделать проверку электронной почты непосредственно в html с html5. На входе введите type = «email» и добавьте необходимые для ввода. Это заставит вводить электронную почту.
<input type="email" required ...
Если вы хотите использовать JS, вот глупая реализация:
function validateEmail() {
var email = document.getElementById("email").value;
if (email.indexOf('@') > email.indexOf('.') > email.length)
{
return true;
}
alert("You have entered an invalid email address !");
return false;
}
Других решений пока нет …