Не отправлять форму, если форма пуста

Это мой первый пост, и я довольно плохо знаком с php + ajax.

У меня большая часть моей проблемы с настройкой кодирования, теперь только когда я нажимаю кнопку отправки, появляется уведомление, которое должно появляться только тогда, когда текстовые поля не пусты.

Это мой код:

<head><script> 
    $(document).ready(function() { 
        // bind 'myForm' and provide a simple callback function 
        $('#ContactForm').ajaxForm(function() { 
            alert("Thank you for subscribing to SHCA"); 
            document.forms["ContactForm"].reset();
        }); 
    }); 

</script> </head>

сопровождаемый некоторым кодированием php:

<?php
        if(strlen($_POST['name']) > 0 AND strlen($_POST['email']) > 0)
        {
        if(isset($_POST['submit']))
        {
         $hostdb = '';
         $namedb = '';
         $userdb = '';
         $passdb = '';

        $conn = mysqli_connect($hostdb , $userdb, $passdb ,$namedb);


        $sql = "INSERT INTO subscribers (name, email) VALUES('$_POST[name]', '$_POST[email]')";



        if (!mysqli_query($conn, $sql))
        {
        die('Error: ' .mysql_error($conn));
        }

        if (!mysqli_ping($conn)) {
echo 'Lost connection, exiting after query #1';
exit;
}

mysqli_close($conn);
}}
else
{

?>

        <form id="ContactForm" action="" method="post">

                    <label for="author">Name:</label> <input type="text" id="name" name="name" class="required input_field float_r" />
                    </br>
                    </br>
                    <label for="email">Email:</label> <input type="text" id="email" name="email" class="validate-email required input_field float_r" />

                    <div class="cleaner h10"></div>

                    <input type="submit" value="Subscribe" id="submit" name="submit" class="submit_btn float_l" />
        </form>
        <?php } ?>

надеюсь, что кто-нибудь здесь сможет сказать мне, что я должен сделать, чтобы показывать сообщение "Спасибо за подписку на SHCA" только тогда, когда текстовые поля не пусты

окончательный ответ Дерек забыл '' в объектах, так что кричите, чтобы бросить вызов за помощь мне!

$(document).ready(function() { 
    // bind 'myForm' and provide a simple callback function 
    $('#ContactForm').ajaxForm(function() { 
        if( !$('#name').val()) {
             alert("please enter your name");
        }
        if(!$('#email').val()) {
            alert("plese enter your email adress");
            }
        else{
            alert("Thank you for subscribing to SHCA"); 
        }

        document.forms["ContactForm"].reset();
    }); 
}); 

2 ответа

Решение

Это должно сделать это без необходимости обновления

$(document).ready(function() { 
    // bind 'myForm' and provide a simple callback function 
    $('#ContactForm').ajaxForm(function() { 
        if( !$(#name).val() || !$(#email).val()) {
             //don't display
        }else{
            alert("Thank you for subscribing to SHCA"); 
        }

        document.forms["ContactForm"].reset();
    }); 
}); 

Вы должны проверить содержимое полей перед отправкой на сервер, простой метод сценария может проверить перед отправкой. Если поля пусты, отобразите сообщение об ошибке и не отправляйте форму.

function SubmitDetails()
{
    if(window.ContactForm.name.value == "")
    {
        window.alert("Please enter a name");
        return;
    }if(window.ContactForm.email.value == "")
    {
        window.alert("Please enter an email" );
        return;
    }

    window.ContactForm.submit();
} 
Другие вопросы по тегам