2017-04-11 9 views
1

私は、フォームに関するいくつかのフィールド(アプリケーション内のモデル)を含むフォームAを持っていますが、form.getForm()によって直接送信することはできません。フォームAで別のウィンドウが開き、そのウィンドウのフィールドがフォームAにフィールドを添付したいので、フィールドを一緒にサブミットすることができます。 詳細は次のとおりです。 enter image description hereextjsフィールドを別の既存のフォームにバインドする方法

答えて

1

この場合、私はフォームに2つの異なるIDを付けようとします。次に、それらから値を取り出し、フィールド名が異なる場合はマージします。

var first_form_values = Ext.getCmp('first-form').getForm().getValues(); 
var second_form_values = Ext.getCmp('second-form').getForm().getValues(); 
var all_values = Ext.Object.merge(first_form_values , second_form_values); 

は、その後、あなたはすべての値を持っていて、などExt.Ajaxによって

全例、それらを送信することができます

Ext.create('Ext.window.Window', { 
     title: 'First Form', 
     height: 200, 
     width: 400, 
     layout: 'fit', 
     items: { 
      xtype: 'form', 
      id: 'first-form', 
      items: [ 
       { 
        xtype: 'textfield', 
        fieldLabel: 'First field', 
        name: 'first-field', 
       } 
      ] 
     }, 
     buttons: [ 
      { 
       text: 'Show second form' 
       handler: function() 
       { 
        Ext.create('Ext.window.Window', { 
         title: 'Second Form', 
         height: 200, 
         width: 400, 
         layout: 'fit', 
         items: { 
          xtype: 'form', 
          id: 'second-form', 
          items: [ 
           { 
            xtype: 'textfield', 
            fieldLabel: 'Second field', 
            name: 'second-field', 
           } 
          ] 
         }, 
         buttons: [ 
          { 
           text: 'Submit' 
           handler: function() 
           { 
            var first_form = Ext.getCmp('first-form'), 
             second_form = Ext.getCmp('second-form'); 
            if(first_form && second_form) 
            { 
             var fist_form_values = first_form.getForm().getValues(), 
              second_form_values = second_form.getForm().getValues(); 

             var values = Ext.Object.merge(fist_form_values, second_form_values); 

             // You have all values from two forms 
            } 


           } 
          } 
         ] 
        }).show(); 
       } 
      } 
     ] 
    }).show(); 
+0

を私はあなたがdoing.itは完璧に動作しているすべてのものを試してみましたしかし、私の最初のフォームにはファイルフィールドが含まれています。私は単にfilefield.itを使わないでフォームの値を取得するのは、私が混乱している点です、ありがとう – macarole

関連する問題