Javascript extjs4:如何两次提交相同的表单数据
我有一个带有两个按钮的输入表单,提交和保存。最初,两个按钮都将被禁用。一旦用户输入数据,submit按钮将被启用,他将提交表单,表单将转到servlet进行验证(通过验证,我的意思是发送用户ID和密码以检查数据库中是否存在该表单) 这是我的提交按钮处理程序:Javascript extjs4:如何两次提交相同的表单数据,javascript,forms,servlets,extjs,extjs4,Javascript,Forms,Servlets,Extjs,Extjs4,我有一个带有两个按钮的输入表单,提交和保存。最初,两个按钮都将被禁用。一旦用户输入数据,submit按钮将被启用,他将提交表单,表单将转到servlet进行验证(通过验证,我的意思是发送用户ID和密码以检查数据库中是否存在该表单) 这是我的提交按钮处理程序: validateForm: function(button){ console.log('Validatingform'); var formData=button.up('form').getForm();
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方法中,我启用save按钮,然后单击save按钮立即保存表单数据
但是,由于表单已经提交,我的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;
}
}
您是否在用户点击“提交”按钮后禁用表单项?否。我只是禁用了“提交”按钮。当然,我会尝试。如果你能更清楚地说出你的想法,那将非常有帮助。我发布的代码检查submit按钮是否保存了任何数据,如果没有,则将formdata保存在按钮的属性savedData中(这不是本机属性,但Ext允许你添加这些属性);然后,当调用onValid函数时,它获取submit按钮引用,并检查该按钮是否具有名为savedData的属性。如果是这样,它将从此属性创建一个名为formData的新变量,此变量可用于新提交等。之后,它从按钮中删除该属性,以允许使用不同信息进行新提交。onInvalid也会清除此属性,只是为了确保流中没有旧数据。好的,非常感谢。我知道了。我现在就去试试