2010-07-23 6 views
0

je peux voir quelles sont les valeurs des champs juste avant le soumettre:appel Extjs form.submit() de changement de valeur du champ

var itemsForm = ''; 
function mostraItems(item, index, length) { itemsForm += item.id + ':' + item.name + ':' + item.value + ':' + index + '\n'; } 
myForm.form.items.each(mostraItems); 
alert (itemsForm); 
myForm.form.submit({... 

Le problème que j'ai est que les valeurs présentées sont différentes de ce que je peux voir avant l'appel de form.submit(). L'un des champs est une zone de liste déroulante:

var myCombo = new Ext.form.ComboBox({ 
    //autoWidth: true, 
    width: 250, 
    displayField: 'theFieldText', 
    editable: false, 
    emptyText: 'Select something ...', 
    fieldLabel: 'Some text', 
    listeners: { 'select': { fn: theOnSelect, scope: this} }, 
    mode: 'local', 
    selectOnFocus: true, 
    store: theStore, 
    triggerAction: 'all', 
    typeAhead: true, 
    valueField: 'theFieldValue', 
    name: 'fieldName' 
}); 

Qu'est-ce qui se passe dans la demande est la somme des ValueField et displayField. Supposons que le champ de valeur contienne "1" et que displayField contienne "un peu de texte" alors ce qui se passe dans la requête est "1 (du texte)" au lieu de simplement la valeur "1".

Il se passe quelque chose après ou pendant l'appel form.submit() et je ne trouve pas ce que c'est.

aide Ext 2.3

Répondre

0

Il n'y a rien qui se passe inhabituel pendant formulaire soumettre appel. Tout d'abord, vérifiez les valeurs de formulaire juste avant la soumission du formulaire (mais pas de la façon dont vous le faites maintenant). Utilisez-vous Firebug (j'espère que oui)?

myForm.getValues(); 

donne les paires clé/valeur telles qu'elles seront soumises.

tapez donc dans la console

Ext.getCmp('your-form-id').getForm().getValues(); 

ou mettre dans votre code

console.log(myForm.getValues()); 

au lieu d'alerte() et voir une sortie. Ensuite, lorsque vous soumettez le formulaire de manière standard

myForm.submit({url: 'submit-url'}) 

il n'y a aucune chance de vos valeurs seront différentes. Comment soumettez-vous le formulaire?

0

Comme Igor l'a décrit, vous devez toujours utiliser form.getForm().getValues() pour voir quelles valeurs sont soumises.

Et si pour un champ particulier vous n'êtes pas satisfait de la façon dont vos données sont formatées ou affichées ou calculées, vous pouvez toujours remplacer la méthode getSubmitData pour ce champ.

Questions connexes