Подтвержденная форма Jquery не отправляется при возврате true - PullRequest
1 голос
/ 04 марта 2011

Ух ты, мой первый пост в Stackoverflow, я смотрел этот сайт целую вечность ... во всяком случае, у меня есть форма, что я использую Jquery для некоторой простой проверки, и по какой-то причине, хотя ' Возвращается истина », я проверил это, поставив предупреждение прямо перед ним. Вот мой jquery, который не приходит с ошибками:

            var captcha_def = 'Please copy the text';

        $('input[type="submit"]').click( function(x){
            x.preventDefault();
            var validated;

            $('.validate').each(function(){
                var content = $(this).val();
                if ( content == '' )
                {
                    $(this).addClass('error');
                    validated = 'false';
                }
                else
                {$(this).removeClass('error');}
            });


            $('#conf_email').each( function(){  //Just to check to make sure their is a Email Confirmation

                var email = $("#email").val();
                var conf_email = $('#conf_email').val();
                if (email != conf_email)
                {
                    $('#email, #conf_email').addClass('error');
                    validated = 'false';
                }
                else
                {
                    $('#email, #conf_email').removeClass('error');
                }
            });



                var captcha = $('#captcha_input').val();
                if (captcha == captcha_def)
                {
                    $('#captcha_input').addClass('error');
                    validated = 'false';
                }
            alert(validated);

            if (validated === 'false') 
            {
                return false;
                } 
            else
            {   
                return true;
            }

        });

и вот мой HTML (который проверяет):

<form id='freeform' name='a' method="post" action="index.php"  >


    <div id="contact_form">
        <h2><span class="small-caps">Send</span> US AN <span class="small-caps">Email</span></h2>

        <label for="name_input" class="text">*Your Name:</label><input type="text" name="name" class="text validate" id="name_input" /><br />
        <label for="email_input" class="text">*Email:</label><input type="text" name="email" class="text validate email" id="email_input" /><br />
        <label for="ta_message" class="textarea">Your Message:</label><br />
        <textarea id="ta_message" name="message"></textarea><br />

        <label for="captcha_input" class="text"><img src="/images/captchas" width="140" height="30" style="border:0;" alt=" " /></label><input type="text" name="captcha" class="captcha text validate" id="captcha_input" /><br />

        <input type="submit" id="submit" value="Submit"> 
    </div>

Я бился головой об этом и не могу понять, что это такое, и с приближающимся сроком, я пытаюсь выяснить, что я испортил. Большое спасибо за любую помощь!

Ответы [ 2 ]

3 голосов
/ 04 марта 2011

Почему вы вначале вызываете x.preventDefault () без какой-либо проверки?А как насчет предотвращения поведения по умолчанию только в случае сбоя проверки?

1 голос
/ 04 марта 2011

x.preventDefault ();строка предотвращает поведение по умолчанию элемента управления (в данном случае, отправки).Удалите эту строку или переместите, если прямо перед возвращением false, и это должно сработать.

...