JQuery отправка формы - PullRequest
       16

JQuery отправка формы

0 голосов
/ 22 июля 2011

Моя форма работает должным образом, и я получаю от нее электронные письма, но если вы нажмете «Отправить», не введя данные, вы получите окно с сообщением о том, какие поля вам нужны - однако кнопка «Отправить» остается серой, даже если выЗаполните эти поля, вы не можете отправить форму без обновления.

код:

jQuery(document).ready(function() {
    $('#success').hide();

    $('#contactform').submit(function() {
        var action = $(this).attr('action');

        $('#contactform #submit').attr('disabled', 'disabled').after('<img src="images/ajax-loader.gif" class="loader" />');

        $("#message").slideUp(750,function() {
            $('#message').hide();

            $.post(action, { 
                name: $('#name').val(),
                email: $('#email').val(),
                phone: $('#phone').val(),
                subject: $('#subject').val(),
                comments: $('#comments').val(),
                verify: $('#verify').val()
            },
            function(data) {
                document.getElementById('message').innerHTML = data;
                $('#message').slideDown('slow');
                $('#contactform img.loader').fadeOut('fast',function(){$(this).remove()});
                $('#contactform #submit').attr('disabled',''); 
                if(data.match('success') != null) $('#submit').hide();

            });
        });

        return false; 
    });
});

Любая помощь очень ценится!

Ответы [ 4 ]

0 голосов
/ 22 июля 2011

Вы проверяли, действительно ли этот скрипт выполняется до точки, где он должен удалить или обновить атрибут?

0 голосов
/ 22 июля 2011

Это потому, что кнопка отправки отключена после того, как вы нажали кнопку отправки:

  $('#contactform #submit').attr('disabled','disabled').after('<img src="images/ajax-loader.gif" class="loader" />');

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

 $('#contactform #submit').removeAttr('disabled');
0 голосов
/ 22 июля 2011

Попробуйте использовать функцию removeAttribute .

Я думаю, это решит вашу проблему.

(Поскольку <input type='text' disabled='disabled' ----> и <input type='text' disabled ---> одинаковы. Использование removeAttribute отобразит что-то вроде <input type='text' ---> и ваша проблема будет решена)

0 голосов
/ 22 июля 2011

Это потому, что атрибут disabled работает по существованию. Под этим я подразумеваю, что само включение атрибута disabled приводит к отключению элемента.

Заменить:

$('#contactform #submit').attr('disabled','');

с:

$('#contactform #submit').removeAttr('disabled');
...