Usted puede llamar directamente a la función de "privado":
textBox._set('state', 'Error');
Obtiene el mismo resultado que se sugirió @phusick pero con menos código y podría decirse que de una manera más directa y limpia.
Notas: _set
está disponible para ValidationTextBox
según lo declarado en su clase base dijit/_WidgetBase
.
Demostración en directo: Solución @arber http://jsfiddle.net/gibbok/kas7aopq/
dojo.require("dijit.form.Button");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.Tooltip");
dojo.ready(function() {
var textBox = dijit.byId("validationTextBox");
dojo.connect(dijit.byId("tooltipBtn"), "onClick", function() {
dijit.showTooltip(
textBox.get('invalidMessage'),
textBox.domNode,
textBox.get('tooltipPosition'), !textBox.isLeftToRight()
);
});
dojo.connect(dijit.byId("validatorBtn"), "onClick", function() {
// call the internal function which set the widget as in error state
textBox._set('state', 'Error');
/*
code not necessary
var originalValidator = textBox.validator;
textBox.validator = function() {return false;}
textBox.validate();
textBox.validator = originalValidator;
*/
});
});
gracias: lástima que no pueda mostrar la información sobre herramientas, sin pasar por el método de validación. Solo estoy tratando de mostrar el resultado de la interacción del servidor a través de la información sobre herramientas para ValidationTextBox – Chin