2011-11-08 2 views
2

예 : Ext.form.Panel 인스턴스를 AJAX 자료없이 이전 방식으로 제출해야합니다. standardSubmit: true 매개 변수를 사용하는 몇 가지 솔루션을 찾았습니다. 나는이처럼 사용동기식 (구 방식) Ext.form.Panel 제출

Ext.define('MyForm', { 
    id: 'myform', 
    extend: 'Ext.form.Panel', 
    url: '/some/url/' 
    standardSubmit: true, 
    ... 
    buttons: { 
     ... 
     handler: function() { 
      Ext.getCmp('myform').getForm().submit(); 
     } 
    } 
}) 

버튼이 No URL specified 오류로 연결 제출을 클릭하십시오. submit 메서드에서 다른 매개 변수 조합을 전달하려고했지만 모든 얻을 이상한 오류가 많이 있습니다. 누군가가 일하는 예제를 공유 할 수 있습니까?

+0

동기식 Ext.js 제출을 찾는 중에이 질문을 발견했습니다. 'standardSubmit'은 전체 페이지를 새로 고침합니다. 'Ext.Ajax.request ({..., async : false, ...})'가 내가 찾고있는 것이었다. – Meredith

답변

2

여기 Ext.form.Panel에 대한 문서는

서브 클래 싱은 FormPanel에서, BasicForm에 대한 구성 옵션은 지금까지

은 FormPanel

의 initialConfig 속성에 적용해야하는 경우, 말씀 위에 나열된 코드는 다음과 같이 표시되어야합니다.

Ext.define('MyForm', { 
    extend: 'Ext.form.Panel', 
    ...  
    initComponent: function() { 
     var me = this 
     Ext.apply(me.initialConfig, { 
      url: '/some/url', 
      standardSubmit: true, 
      method: 'GET' 
     }) 
     ... 
     me.buttons = { 
      ... 
      text: 'Submit', 
      handler: function() { 
       me.getForm().submit(); 
      } 
     } 
     me.callParent() 
    } 
}) 

확실하지 않습니다. 그러나 문제를 해결합니다.

0

작동합니다! 나는 거의 일주일 동안 그것을 찾았다! Radagast 코드가 작동합니다! 다른 코드는 없지만 ext-407-gpl.

var login_form = Ext.create('Ext.form.Panel', { 
    frame:true, 
    title: '<?php echo $this->escape($this->message); ?>', 
    url: '<?php echo $this->baseUrl ?>/auth/login', 
    standardSubmit: true, 
    bodyStyle:'padding:5px 5px 0', 
    width: 350, 
    fieldDefaults: { 
     msgTarget: 'side', 
     labelWidth: 75 
    }, 
    defaultType: 'textfield', 
    defaults: { 
     anchor: '100%' 
    }, 
items: [{ 
     fieldLabel: 'login', 
     name: 'login_id', 
     allowBlank:false 
    },{ 
     fieldLabel: 'password', 
     name: 'passwd', 
     inputType: 'password' 
    }], 

    buttons: [{ 
     text: 'submit', 
     type: 'submit', 
     handler: function() { this.up('form').getForm().submit(); } 
    }, { 
     text: 'reset', 
     type: 'reset', 
     handler: function() { this.up('form').getForm().reset(); } 
    }] 
});