Turn off instant validation when losing focus
http://stackoverflow.com/questions/14979144/turn-off-instant-validation-when-losing-focus
by cswing
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dijit/themes/claro/claro.css">
<div id="txt" data-dojo-type="dijit/form/ValidationTextBox" data-dojo-props="required: true"></div>
<div id="dt" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="required: true"></div>
<div id="btn" data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Validate!'"></div>
JavaScript
require(["dojo/ready", "dojo/parser", "dijit/registry", "dojo/on", "dojo/_base/array", "dijit/form/Button", "dijit/form/ValidationTextBox", "dijit/form/DateTextBox", "dijit/form/TextBox"], function(ready, parser, registry, on, array, Button, ValidationTextBox, DateTextBox, TextBox) {
ready(100, function(){
// patch the ValidationTextBox before parsing.
ValidationTextBox.prototype._setValueAttr = function() {
//this.inherited(arguments);
//this.validate(this.focused); Do not validate
TextBox.prototype._setValueAttr.apply(this, arguments);
};
ValidationTextBox.prototype._refreshState = function(){
TextBox.prototype._refreshState.apply(this, arguments);
};
parser.parse();
var widgets = [registry.byId("txt"),registry.byId("dt")];
on(registry.byId("btn"), 'click', function() {
array.forEach(widgets, function(w) {
w._hasBeenBlurred = true;
w.validate();
});
});
});
});