我有一个带有 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/