2012-08-13 5 views
6

bende kod göndermek:ExtJS - Form

win = desktop.createWindow({ 
    id: 'admin-win', 
    title: 'Add administration users', 
    width: 740, 
    height: 480, 
    iconCls: 'icon-grid', 
    animCollapse: false, 
    constrainHeader: true, 
    xtype: 'form', 
    bodyPadding: 15, 
    url: 'save-form.php', 
    items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'Field', 
     name: 'theField' 
    }], 

    buttons: [{ 
     text: 'Submit', 
     handler: function() { 
      var form = this.up('form').getForm(); 
      if (form.isValid()) { 
       form.submit({ 
        success: function (form, action) { 
         Ext.Msg.alert('Success', action.result.message); 
        }, 
        failure: function (form, action) { 
         Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
        } 
       }); 
      } 
     } 
    }] 
}); 

Ve düğmeler çalışmaz. Hata yaratır - this.up ('form') tanımsızdır. Böyle bir kodda getForm() öğesini nasıl arayabilirim?

GÜNCELLEME: Gerçekten hızlı yanıt için teşekkürler! Benim ihtiyaçları için kodunuzu modifiye, bunu, ve Masaüstü Örnek çalışır:

win = desktop.createWindow({ 
    id: 'admin-win', 
    title: 'Add administration users', 
    width: 740, 
    iconCls: 'icon-grid', 
    animCollapse: false, 
    constrainHeader: true, 
    items: [{ 
     xtype: 'form', 
     bodyPadding: 15, 
     url: 'save-form.php', 
     items: [{ 
      xtype: 'textfield', 
      fieldLabel: 'Field', 
      name: 'theField' 
     }], 

     buttons: [{ 
      text: 'Submit', 
      handler: function() { 
       var form = this.up('form').getForm(); 
       if (form.isValid()) { 
        this.up().up().submit({ 
         success: function (form, action) { 
          Ext.Msg.alert('Success', action.result.message); 
         }, 
         failure: function (form, action) { 
          Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
         } 
        }); 
       } 
      } 
     }] 
    }] 
}); 
+0

Bu tam bir kod mu? Desktop.createWindow ne yapar? Bunu soruyorum çünkü bir pencere girmeyi deniyorsunuz ama Ext.form.Panel seçeneklerini kullanıyorsunuz. – davidbuzatto

+0

ExtJS Masaüstü Örneğine dayanmaktadır. Sadece form içeren bir pencere oluşturmak istiyorum. –

+0

Yani bu kodu kopyalayıp yapıştırdınız mı? – davidbuzatto

cevap

5

Daha önce bahsedildiği gibi, sizin kodla ilgili sorunları var gibi görünüyor. Ext.form.Panel seçeneklerini bir Ext.window.Window'a iletiyorsunuz (bunu çağırdığın yöntemin adı olarak kabul ediyorum). Senin için bir pencere ile bir örnek yazıyorum. Bir dakika.

Hazırdır. Bir göz atın:

Ext.create('Ext.window.Window', { 
    title: 'This is a Window with a Form', 
    height: 200, 
    width: 400, 
    layout: 'fit', 
    items: [{ // the form is an item of the window 
     id: 'admin-win', 
     title: 'Add administration users', 
     width: 740, 
     height: 480, 
     iconCls: 'icon-grid', 
     animCollapse: false, 
     constrainHeader: true, 
     xtype: 'form', 
     bodyPadding: 15, 
     url: 'save-form.php', 
     items: [{ 
      xtype: 'textfield', 
      fieldLabel: 'Field', 
      name: 'theField', 
      allowBlank: false 
     }], 
     buttons: [{ 
      text: 'Submit', 
      handler: function() { 
       var form = this.up('form').getForm(); 
       if (form.isValid()) { 
        form.submit({ 
         success: function(form, action) { 
          Ext.Msg.alert('Success', action.result.message); 
         }, 
         failure: function(form, action) { 
          Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
         } 
        }); 
       } else { 
        Ext.Msg.alert("Error!", "Your form is invalid!"); 
       } 
      } 
     }] 
    }] 
}).show(); 

jsFiddle: http://jsfiddle.net/davidbuzatto/vWmmD/

+0

Teşekkürler :-) Benim 1. gönderiyi güncelledim çünkü konularıma cevap vermek için iznim yok ;-) Kodumu ihtiyaçlar için değiştirmem gerekiyor. –

+0

Bir şey değil! Dediğim gibi, Ext.form.Panel seçeneklerini gerçekten Ext.window.Window :) 'a geçiriyordunuz. ExtJS çok güzel. Çok eksiksiz olduğu için belgelerine bakın. – davidbuzatto