var user_email = dijit.byId("login_user_email");
user_email.set("invalidMessage", data["result"]["user_email"]);
//need to force show the tooltip but how???
任何帮助都非常感激。
答案 0 :(得分:11)
在jsFiddle看到它的实际效果。
只需显示工具提示:
var textBox = bijit.byId("validationTextBox");
dijit.showTooltip(
textBox.get("invalidMessage"),
textBox.domNode,
textBox.get("tooltipPosition"),
!textBox.isLeftToRight()
);
暂时切换textBox验证器,强制验证,恢复原始验证器:
var originalValidator = textBox.validator;
textBox.validator = function() {return false;}
textBox.validate();
textBox.validator = originalValidator;
或者同时做两件事。
答案 1 :(得分:3)
我认为您可以通过myVTB.displayMessage显示工具提示('这来自后端验证');方法
答案 2 :(得分:2)
您需要在验证器方法中进行验证。像这里http://docs.dojocampus.org/dijit/form/ValidationTextBox-tricks 您还需要关注小部件以显示消息! dijit.byId( “无所谓”)。对焦()
答案 3 :(得分:1)
function showCustomMessage(textBox, message){
textBox.focus();
textBox.set("state", "Error");
textBox.displayMessage(message);
}
ValidationTextBox的Dojo引用guid:https://dojotoolkit.org/reference-guide/1.10/dijit/form/ValidationTextBox.html
答案 4 :(得分:0)
我知道这个问题很古老,但希望这会对某人有所帮助。是的,你应该使用验证器,但是如果你有理由不这样做,这将显示消息并使字段无效:
function(textbox, state /*"Error", "Incomplete", ""*/, message) {
textbox.focus();
textbox.set("state", state);
textbox.set("message", message);
}
答案 5 :(得分:0)
您可以直接调用“私人”功能:
textBox._set('state', 'Error');
你得到的结果与@phusick建议的结果相同,但代码更少,可以说是更加直接和干净。
注意:
_set
可在基类ValidationTextBox
上声明dijit/_WidgetBase
。
现场演示: 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;
*/
});
});