سؤال

لدي نموذج مع 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/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top