jquery.form & jquery.validate: в IE нет данных POST - PullRequest
1 голос
/ 18 января 2011

Когда пользователи отправляют my from в IE8 с режимом совместимости или без него, форма выполняет вызов AJAX, но данные POST не отправляются.Ниже приведены мои jQuery.validate и jQuery.form код:

var v = jQuery("#enterfrm").validate({
        submitHandler: function(form) {
            jQuery(form).ajaxSubmit({
                target: "#result",
                success: function() {
                    $("#enterfrm").hide();
                }
            });
        },
        debug: true,
        rules: {
            reportto: {
                required: true
            },
            jobtitle: {
                required: true
            },
            dept: {
                required: true
            },
            paystatus: {
                required: true
            },
            reason: {
                required: true
            },
            prefstartdate: {
                required: true
            },
            sthour: {
                required: true
            },
            edhour: {
                required: true
            },
            jbdescex: {
                required: true
            },
            positionchg: {
                required: true
            },
            minexp: {
                required: true
            },
            adrecreq: {
                required: true
            },
            comsug: {
                required: false
            },
            org: {
                required: true
            },
            origemail: {
                required: true
            },
            // //
            replacing: {
                required: function(element) {
                    return $("#reason").val() == "Replacement";
                }
            },
            replacetitle: {
                required: function(element) {
                    return $("#reason").val() == "Replacement";
                }
            },
            justify: {
                required: function(element) {
                    return $("#reason").val() == "New Position";
                }
            },
            length: {
                required: function(element) {
                    return $("#paystatus").val() == "Temporary - In House" || $("#paystatus").val() == "Temporary - Outside";
                }
            },
            purpose: {
                required: function(element) {
                    return $("#jbdescex").val() == "No" || $("#positionchg").val() == "Yes";
                }
            },
            duties: {
                required: function(element) {
                    return $("#jbdescex").val() == "No" || $("#positionchg").val() == "Yes";
                }
            },   
            sthour: {
                required: true,
                minlength: 4,
                maxlength: 8
                //notEqTime: true
            },
            edhour: {
                required: true,
                minlength: 4,
                maxlength: 8 //,
                //notEqTime: true
            }
        }
    });

А вот что FireBug Lite захватывает:

ResponseHeaders
Date Mon, 17 Jan 2011 13:56:25 GMT
Server Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_perl/2.0.2 Perl/v5.8.8
X-Powered-By PHP/5.2.4-2ubuntu5.12
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html

RequestHeaders
Content-Type application/x-www-form-urlencoded
X-Requested-With XMLHttpRequest
Accept */* 

На вкладке POST ничего нет.Все это прекрасно работает в Firefox, Chrome и IE с Chrome Frame.Я что-то упускаю из-за проблемы?

РЕДАКТИРОВАТЬ Я уже пробовал это с GET-запросом, и это тоже не работает.

1 Ответ

0 голосов
/ 18 января 2011

похоже на то, что jQuery.Form использует $.param(a) для сериализации формы, я только успешно смог получить IE для создания правильных данных POST с $.param(a, true) Смотрите здесь. http://api.jquery.com/jQuery.param/

Вы можете использовать традиционную сериализацию во всем мире, выполнив $.ajaxSettings.traditional = true;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...