تغيير قيمة حقل النموذج في extjs إجراء الإرسال
-
29-10-2019 - |
سؤال
لدي نموذج مع extjs مثل هذا:
{
xtype : 'textfield',
fieldLabel : 'name',
name : 'vTitle',
allowBlank : false
},{
xtype : 'datefield',
fieldLabel : 'name',
name : 'date',
allowBlank : false
}
عندما أرسل قيمة النموذج أرسلها إلى الخادم مثل هذا:
Parameters:
vTitle:mm
date:9/11/2011
عندما أقوم بإرسال النموذج، أريد إرسال القيمة الخاصة بي بدلاً من القيمة الافتراضية.على سبيل المثال عندما أقوم بإرسال التاريخ: 9/11/2011
أريد التاريخ: my value related with 9/11/2011
أرسلت إلى الخادم.
لقد استخدمت setvalue للنموذج الخاص بي ولكن إذا كان لدي خطأ من الخادم، فستتغير قيمة النموذج الافتراضية الخاصة بي ولا أريد استخدام setvalue. (فقط أريد إرسال القيمة الخاصة بي إلى الخادم)
المحلول
Ext.Ajax.request({
url:'requestURL.ajax',
params:{
// date: 'your modified date' OR date: date.getValue(), or whatever you want..
},
success: function(response, options){
},
failure: function(resp, action){
}
});
سيقوم بإجراء مكالمة Ajax، وستكون قادرًا على إرسال أي معلمة بداخله، كما يمكنك أيضًا التعامل مع استجابته داخل النجاح والفشل..
نصائح أخرى
يمكنك القيام بذلك عن طريق الإعداد submitValue
ل false
على هذين الحقلين، وعن طريق إنشاء حقل مخفي سيحتوي على قيمة محسوبة.عندما تقوم بتعيين submitValue
ل false
لن يتم إرسال القيمة من الحقل كما يوحي الاسم، لذلك سيتم إرسال قيمة الحقل المخفية فقط.لذلك تحتاج فقط إلى إنشاء معالج لتحديث القيمة في الحقل المخفي (على سبيل المثال، يمكنك إنشاء معالج لـ Ext.form.BasicForm.beforeaction
حدث).
عينة العمل: http://jsfiddle.net/3zmvJ/2/