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

标签 javascript forms servlets extjs extjs4

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

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

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”

我不确定如何保存用户输入的表单数据以进行多次提交。谁能指导我解决这个问题。

提前致谢

最佳答案

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

    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;
     }
}

关于javascript - extjs4:如何提交相同的表单数据两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134252/

相关文章:

java - Controller 和 Servlet 有什么区别?

java - 组合表单和选择

javascript - 有没有办法检查变量是否是 JavaScript 中的日期?

javascript - 如何从 geoJson 加载中获取特征?

javascript - 为什么 findOne({ id }) 在 mongoose 6.012 中无法正常工作

angularjs - 整个表单的类似 ngChange 的功能

php - 用于将多个值插入 HTML 表单上的单独行的数据库设计

javascript - 使用 JQuery 提交简单表单并对必填字段进行限制?

java - 缓冲读取器按原样复制而不获取值

javascript - 使用 == 比较整数与字符串时 JavaScript 中的隐式数据类型转换