Проверка формы с помощью java-скрипта

Пытаюсь проверить форму, но сталкиваюсь с постоянными проблемами. Вот код HTML:

 <form id = "regForm" class = "form-group" method = "POST" action = "signup.php">
                                <div class = "col-md-12">
                                        <h2>Job Pocket</h2>
                                </div>
                                <div class = "col-md-12">
                                    <input placeholder = "email" class = "form-control"type = "text" name = "email" id = "email">
                                </div>
                                <div class = "col-md-12">
                                    <input placeholder = "password"  class = "form-control" type = "password" name = "password" id = "password">
                                </div>
                                <div class = "col-md-12">
                                    <input placeholder = "confirm password"  class = "form-control" type = "password" name = "confirmpass" id = "confirmpass">
                                </div>
                                <div class = "container">
                                    <div class = "row">
                                        <div class = "col-md-6">
                                            <input placeholder = "first name"  class = "form-control" type = "text" name = "first_name" id = "first_name">
                                        </div>
                                        <div class = "col-md-6">
                                            <input placeholder = "last name"  class = "form-control" type = "text" name = "last_name" id = "last_name">
                                        </div>
                                    </div>
                                </div>
                                <div class = "col-md-12">
                                    <input type = "submit"  onclick = "return validation()"class = "btn btn-primary"name = "submitsignup" id = "submitsignup" value = "submit">
                                </div>
                                <hr>
                            </form>
                        </div>
                    </div>              
                </div>
            </div>
        </div>
        </main>
        <p id = "mg"></p>
    </div>

JavaScript:

<script type = "text/javascript">
    function validation(){
      if (document.getElementById("email").value= = "" || document.getElementById("password").value= = "" || document.getElementById("last_name").value= = "" || document.getElementById("first_name").value= = ""){

            document.getElementById("mg").innerHTML = "Fill all fields";
            return false; 
        }
        var emails = document.getElementById("email").value;

        else if (emails.indexOf('@') <= 0){
            document.getElementById('mg').innerHTML  = " ** @ Invalid Position";
            return false;
        }

        else if ((emails.charAt(emails.length-4)!='.') && (emails.charAt(emails.length-3)!='.')){
            document.getElementById('mg').innerHTML  = " ** . Invalid Position";
            return false;
        }

        else {
        document.getElementById("regForm").submit();
        }
}
</script>

Форма продолжает отправляться сама. Он работает для первого оператора if, но после этого игнорирует два else if и отправляет себя. Даже если я закомментирую это утверждение, оно все равно отправляется на signup.php.

document.getElementById("regForm").submit();

На данный момент я понятия не имею, почему он отправляется, поэтому я также добавляю php-код.

if (isset($_POST['submitsignup'])){

$date = array();

if ($_POST['email']=='' || $_POST['password']=='' || $_POST['first_name']=='' || $_POST['last_name']==''){
    $template->error = "Please fill all fields";
           }}

Я добавил этот фрагмент кода в файл signup.php для дополнительной проверки, но я заметил, что strightup отправляется в файл signup.php.

Если бы вы проверили наличие ошибок и консоль, вы бы обнаружили, что причиной этого была простая типографская ошибка, которая не соответствует политике Stack.

Funk Forty Niner 28.08.2018 13:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
93
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Обновлено: обновленный ответ на обновленный вопрос

Ваша проблема может быть связана с тем, что у вас есть эта строка кода:

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

перед elseif, что может нарушить поток if elseif.

Попробуйте вместо этого использовать этот код:

function validation(){
    var emails = document.getElementById("email").value;
  if (emails= = "" || document.getElementById("password").value= = "" || document.getElementById("last_name").value= = "" || document.getElementById("first_name").value= = ""){
        document.getElementById("mg").innerHTML = "Fill all fields";
        return false; 
    }
    else if (emails.indexOf('@') <= 0){
        document.getElementById('mg').innerHTML  = " ** @ Invalid Position";
        return false;
    }
    else if ((emails.charAt(emails.length-4)!='.') && (emails.charAt(emails.length-3)!='.')){
        document.getElementById('mg').innerHTML  = " ** . Invalid Position";
        return false;
    }
    else {
        document.getElementById("regForm").submit();
    }
}

@ahsan, так как это всего лишь опечатка, лучше бы удалить вопрос. На самом деле это никого ничему не учит на будущее.

ADyson 28.08.2018 13:35

@AmmoPT, пожалуйста, не отвечайте на вопросы не по теме, пометьте их как таковые.

Luca Kiebel 28.08.2018 13:37

Подождите, я исправил это, но проблема все еще остается

ahsan 28.08.2018 13:38

@ahsan Обновил ответ, попробуйте, если хотите.

AmmoPT 28.08.2018 13:47

Я люблю тебя, братан. Большое спасибо

ahsan 28.08.2018 13:50

@Luca Я не знал, что опечатки считаются не по теме (я новичок в игре с ответами), я воздержусь от этого в будущем. Однако, поскольку к этому ответу было добавлено продолжение, я хочу его сохранить.

AmmoPT 28.08.2018 14:07

@ADyson Я не знал, что опечатки считаются не по теме (я новичок в игре с ответами), я воздержусь от этого в будущем. Однако, поскольку к этому ответу было добавлено продолжение, я хочу его сохранить.

AmmoPT 28.08.2018 14:08

Попробуйте:

<input type = "button"

вместо:

type = "submit"

Обновлено: в противном случае ваша функция .submit () бесполезна. -2? Скажите, зачем использовать .submit (), если форма уже имеет тип отправки?

Это тип submit, так зачем использовать .submit ()? В любом случае форма отправит причину type = "submit"

Delbo ar 28.08.2018 13:41

Теперь он вообще не сдается

ahsan 28.08.2018 13:46

Вы можете отлаживать, вставляя console.info в каждый if / else, если проверить, почему ваше последнее условие не работает, тогда

Delbo ar 28.08.2018 13:50

Другие вопросы по теме