J'ai ce formulaire dans ExtJs. Si field1 n'est pas vide, field2 ne doit pas être vide. Mais cela ne fonctionne pas même si l'auditeur tire.ExtJs Form Validation Question
{
xtype : 'panel',
title : 'title 1',
items : [{
xtype : 'fieldset',
title : 'field A',
items : [{
xtype : 'textfield',
fieldLabel : 'Line 1',
id : 'field1',
listeners: {
change: function(f, new_val) {
if (new_val) {
//alert("change" + new_val);
f.field2.allowBlank = false;
} else {
f.field1.allowBlank = true;
}
}
},
code for field2
]
}
Je suis d'accord que allowBlank est une valeur de configuration et il doit être utilisé comme tel, mais vous pouvez toujours l'utiliser comme s'il s'agissait d'une propriété. Je l'ai fait sur mon projet précédent, et j'ai pu obtenir la fonctionnalité souhaitée décrite par l'OP. Maintenant j'ai juste besoin d'attendre jusqu'à ce que je rentre à la maison pour me rappeler comment le faire: P. Ne vous méprenez pas, le code était définitivement un kludge. – McStretch
@McStretch - on dirait que vous avez raison. Juste eu un coup d'oeil sur le code, et en effet les internes de TextField juste inspectent this.allowBlank lors de la validation. Les docs devraient probablement le répertorier comme une propriété publique, pas une simple option de configuration. – timdev
Je pense que les développeurs voulaient qu'il soit en lecture seule, mais il y a des cas où il est utile de modifier la propriété à la volée; comme le cas de l'OP. Donc oui je suis d'accord, il devrait probablement être une propriété à moins qu'il n'y ait une manière plus claire de développer cette fonctionnalité. – McStretch