extjs4:如何两次提交相同的表单数据

时间:2014-10-01 04:40:47

标签: javascript forms servlets extjs extjs4

我有一个包含2个按钮的输入表单,提交并保存。最初两个按钮都将被禁用。一旦用户输入数据,将启用提交按钮并提交表单,该表单将转至servlet进行验证(通过验证,我的意思是我发送用户ID和密码以检查它是否存在于数据库中)< / p>

这是我的提交按钮处理程序:

validateForm: function(button){
        console.log('Validatingform');
        var formData=button.up('form').getForm();
        if(formData.isValid()){
            Ext.Ajax.request({
                url : 'MyServlet',
                params : {
                    inputData:Ext.encode(formData.getValues()),
                    validate:"valid"
                },
                scope : this,
                success : this.onValid,
                failure : this.onInvalid
            });
        }
    },

onValid: function(response,button){
        console.log("Valid");
        //on valid-enable save button,disable submit button
        Ext.getCmp('myFormSubmit').setDisabled(true);
        Ext.getCmp('myFormSave').enable();

    },

检查验证后。在OnValid方法中,我启用了“保存”按钮并单击“保存”按钮以立即保存表单数据。

但是,因为表单已经提交,我的servlet的输入是“null”

我不确定如何保存用户为多个提交输入的此表单数据。任何人都可以指导我解决这个问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

保存按钮/表单上的数据是否合适?可能不是最好的想法,但它是一个想法

    validateForm: function(button){
    console.log('Validatingform');
    var formData=button.up('form').getForm();
    if(formData.isValid()){
        //
        if (!button.savedData){
            button.savedData = formdata;    
        }

        //
        Ext.Ajax.request({
            url : 'MyServlet',
            params : {
                inputData:Ext.encode(formData.getValues()),
                validate:"valid"
            },
            scope : this,
            success : this.onValid,
            failure : this.onInvalid
        });
    }
},

onValid: function(response,button){
    console.log("Valid");
    var submitBtn = Ext.getCmp('myFormSubmit');
//on valid-enable save button,disable submit button
    submitBtn.setDisabled(true);
    Ext.getCmp('myFormSave').enable();
    if (submitBtn && submitBtn.savedData){
        formdata = submitBtn.savedData;
        delete submitBtn.savedData;
   }
//
},

onInvalid: function(response,button){
    var submitBtn = Ext.getCmp('myFormSubmit');
    if (submitBtn && submitBtn.savedData){
        formdata = submitBtn.savedData;
        delete submitBtn.savedData;
     }
}