2011-06-28 10 views
0

私は 'form' xtypeを使用して定義されたExtJSフォームパネルを持っています。ユーザーがサブミットをクリックすると、このフォームのURLは、それらのページに基づいて変更されます。これはファイルアップロードフォームです。 IE7では、urlパラメータは完全に無視され、返される文字列はWebサイトのルートからのHTMLです。 IE8、FF、およびChromeでは、これは完全に正常に動作します。ExtJS、IE7フォーム提出の問題

何らかのセキュリティ設定などがありますか? 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(); 
      } 
     }] 

フォーム送信:私はIE7のフォームで非常に奇妙な行動を見つけた

+0

HTMLフォームのソースコードを追加できますか?あなたの質問だけに基づいて問題がどこにあるかを知るのは難しいです。 – mrk

答えて

0

  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; 
       } 
      } 
     }); 

おかげで... 。私の場合、Dojoの問題かもしれませんがIE7の場合と同じ症状です。私は標準的なフォームで確認するのが面倒です。

私は名前の隠しフィールドを持っている場合 IE7は完全に現在のページにフォームアクションパラメータとPOSTフォームを無視しますアクション。基本的には、アクションが指定されていないかのように動作します。

この問題はIE8などで動作しているため、動作パラメータに関するIE7コードとは異なるものでなければなりません。