dojo—显示无效消息的编程方式
dojo新手-尝试一下。 提交表单后,如果服务器返回错误,我希望在dijit.form.ValidationTextBox上显示该消息dojo—显示无效消息的编程方式,dojo,Dojo,dojo新手-尝试一下。 提交表单后,如果服务器返回错误,我希望在dijit.form.ValidationTextBox上显示该消息 var user_email = dijit.byId("login_user_email"); user_email.set("invalidMessage", data["result"]["user_email"]); //need to force show the tooltip but how??? 非常感谢您的帮助。您需要使用validator方
var user_email = dijit.byId("login_user_email");
user_email.set("invalidMessage", data["result"]["user_email"]);
//need to force show the tooltip but how???
非常感谢您的帮助。您需要使用validator方法进行验证。像这里
您还需要关注小部件以显示消息!dijit.byId(“无论什么”).focus()我认为您可以通过myVTB.displayMessage(“这来自后端验证”)显示工具提示;方法在上查看它的操作
var textBox = bijit.byId("validationTextBox");
dijit.showTooltip(
textBox.get("invalidMessage"),
textBox.domNode,
textBox.get("tooltipPosition"),
!textBox.isLeftToRight()
);
var originalValidator = textBox.validator;
textBox.validator = function() {return false;}
textBox.validate();
textBox.validator = originalValidator;
或者同时做这两件事。我知道这个问题由来已久,但希望这能帮助别人。是的,您应该使用验证器,但如果您有理由不使用,这将显示消息并使字段无效:
function(textbox, state /*"Error", "Incomplete", ""*/, message) {
textbox.focus();
textbox.set("state", state);
textbox.set("message", message);
}
您可以直接调用“private”函数:
textBox._set('state','Error')代码>
您可以得到与@phusick建议的结果相同的结果,但代码更少,而且可以说是以更直接和干净的方式
注:
\u set
可用于其基类dijit/\u WidgetBase
上声明的ValidationTextBox
现场演示:
@使用新的dojo时,arber解决方案是最好的。在调用“displayMessage”方法之前,请记住将焦点设置为文本框。
我正在使用dojo 1.10,其工作原理如下:
function showCustomMessage(textBox, message){
textBox.focus();
textBox.set("state", "Error");
textBox.displayMessage(message);
}
ValidationTextBox的Dojo参考guid:谢谢:遗憾的是,如果不通过validator方法,我就无法显示工具提示。我只是想通过ValidationTextBoxI的工具提示来显示服务器交互的结果(如:)似乎会有更多关于这方面的内容,我想他们会认为您只是制作了自己的小部件…?#2为我工作,谢谢。我必须做的唯一修改是将文本框上的焦点设置为第一行:textBox.focus()代码>
function showCustomMessage(textBox, message){
textBox.focus();
textBox.set("state", "Error");
textBox.displayMessage(message);
}