Bạn có thể gọi trực tiếp "private" chức năng:
textBox._set('state', 'Error');
Bạn nhận được kết quả tương tự như @phusick được đề xuất nhưng có ít mã hơn và được cho là theo cách trực tiếp và rõ ràng hơn.
Ghi chú: _set
có sẵn cho ValidationTextBox
như được khai báo trên lớp cơ sở dijit/_WidgetBase
.
Live Demo: 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;
*/
});
});
nhờ: đáng tiếc tôi không thể hiển thị tooltip mà không đi qua các phương pháp xác nhận. Tôi chỉ đang cố gắng thể hiện kết quả của sự tương tác với máy chủ thông qua tooltip cho ValidationTextBox – Chin