ExtJS, IE7 проблема с отправкой формы - PullRequest
0 голосов
/ 28 июня 2011

У меня есть панель форм ExtJS, определенная с помощью xtype 'form'. Когда пользователь нажимает кнопку «Отправить», URL-адрес этой формы изменяется в зависимости от того, на какой странице он находится. Это форма загрузки файла. В IE7 параметр url полностью игнорируется, а возвращаемая строка - это HTML-код из корня веб-сайта. В IE8, FF и Chrome это работает отлично.

Есть какие-то настройки безопасности или что-то еще, что я должен искать? Параметр URL, похоже, полностью игнорируется, что приводит к неудачной загрузке файла.

Код формы (форма в окне):

items: [{
            xtype: 'form',
            fileUpload: true,
            baseCls: 'x-window',
            bodyStyle: 'font-family:tahoma;font-size:12px;',
            defaults: {
                bodyStyle: 'font-family:tahoma;font-size:12px;',
                width: 200
            },              
            items: [{
                xtype: 'hidden',
                name: 'action',
                value: 'import'
            }, {
                xtype: 'fileuploadfield',
                fieldLabel: 'Import File',
                name: 'uit'
            }]
        }],
        fbar: [{
            text: 'Import',
            handler: this.handleImportFn,
            scope: this
        }, {
            text: 'Cancel',
            handler: function () {
                var myB = this;
                myB.disable();
                this.ownerCt.ownerCt.hide();
                myB.enable();
            }
        }]

Форма подачи:

            form.submit({
            params: {
                id: id
            },
            url: this.superParent.myBasicURL // This has been verified valid,
            waitMsg: 'Uploading file',
            success: function (form, action) {
                var resp = Ext.decode(action.response.responseText),
                    addSucc = resp.addSucc || false,
                    msg = 'Import completed successfully.';

                if (addSucc) {
                    if (typeof resp.skipped !== 'undefined' && resp.skipped > 0) {
                        msg += "  " + resp.skipped + " records skipped [" + resp.skips + "].";
                    }
                    Ext.MessageBox.alert("Info", msg);
                    myStore.load();
                    myWin.hide();
                }
                else {
                    Ext.MessageBox.alert("Error", resp.error);
                }
            },
            failure: function (form, action) {                  
                switch (action.failureType) {
                    case Ext.form.Action.CLIENT_INVALID:
                        Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
                        break;
                    case Ext.form.Action.CONNECT_FAILURE:
                        Ext.Msg.alert('Failure', 'Ajax communication failed');
                        break;
                    case Ext.form.Action.SERVER_INVALID:
                        Ext.Msg.alert('Failure', action.result.error);
                        break;
                }
            }
        });

Спасибо ...

1 Ответ

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

Я обнаружил очень странное поведение с формами IE7. В моем случае это может быть проблема с Dojo, но это те же симптомы, что и у IE7. Мне лень проверять с помощью стандартной формы.

Если у меня есть скрытое поле с именем action IE7 будет полностью игнорировать параметр action формы и отправлять форму на текущую страницу. По сути, он действует так, как будто действие не указано.

Теперь я обнаружил, что эта проблема работает, но, учитывая, как она работает в IE8 и других, что-то должно отличаться от кода IE7 в отношении параметра действия.

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