2017-02-20 16 views
1

내가 성공과 실패 콜백 제출하는 것을 내가 양식을 가지고 :양식 제출 6

뷰 :

Ext.define('App.view.CommentForm', { 
    extend: 'Ext.form.Panel', 
    alias: 'widget.ship-commentForm', 
    url: 'addcomment.php', 
    items: [{ 
     xtype: 'textarea', 
     fieldLabel: 'Comment', 
     name: 'text', 
     allowBlank: false, 
     maxLength: 1000 
    },{ 
     xtype: 'textfield', 
     fieldLabel: 'User name', 
     name: 'username', 
     readOnly: true 
    }], 
    fbar: [{ 
     text: 'Save', 
     formBind: true, 
     itemId: 'submit' 
    }] 
}) 

그리고 컨트롤러 :

Ext.define('App.controller.MyController', { 
    init: function(){ 
     this.control({ 
      'ship-commentForm button#submit': {click: this.onFormSubmit}, 
... 
    onFormSubmit: function(btn){ 
     var form = btn.up('form').getForm(), 
     me = this, 
     values = form.getValues(); 
     form.submit({ 
      success: function(form, action){ 
       console.log('success') 
      }, 
      failure: function(form, action){ 
       console.log('failure') 
      } 
     }) 
     setTimeout(function(){btn.up('window').close()}, 100) 
    }, 

이 일을하는 동안 ExtJs4의 ExtJs4에서는 폼이 반드시 제출되어야하지만 성공 및 실패 콜백은 더 이상 호출되지 않습니다. 이 경우에도 the documentation of submit()에 따라 작동해야합니다.

N.B.

{"success":true,"msg":"Comment saved"} 

편집 : 난 그냥이 문제되는 의심 컨트롤러에 코드 추가 : setTimeout(btn.up('window').close(), 100)

+0

나는 당신의 문제를 테스트 할 수있는 샘플 바이올린을 수행하고 내 바이올린 https://fiddle.sencha.com/#view/editor&fiddle/1qjr –

+0

@SuryaPrakashTumma 감사에서 잘 작동한다. 나는 또한 단지 몇 분 전에 https://fiddle.sencha.com/#view/editor&fiddle/1qjq에서 그것을 작동하도록 만들었다. 나는 아직 문제가 어디에 있는지 확신하지 못한다. –

+0

'form.submit'의 성공 콜백 내에서'.close()'메소드를 호출하는 것이 더 좋은 생각이 아니겠습니까? 아니면 어떤 종류의 요구 사항입니까? – qmateub

답변

4

대신의 setTimeout하여 창을 닫지을, 그것을 만들 서버 응답이 유효한 JSON 문자열을 포함 form.submit()의 성공 콜백 그것은 당신의 문제를 해결해야합니다.

form.submit({ 
    success: function(form, action){ 
     btn.up('window').close() 
    }, 
    failure: function(form, action){ 
     console.log('failure') 
    } 
})