【发布时间】:2017-02-15 06:13:31
【问题描述】:
我有一个表单项,其中定义了 missingMessage 和 invalidMessage。我在项目上调用表单验证方法进行验证。如果该项为空,则调用 missingMessage 并显示红色感叹号错误图标。
当用户输入特定值时,我正在尝试在文本项上设置 invalidMessage 如何在不进行硬编码的情况下显示 invalidMessage 和红色感叹号对文本项的约束。
我想用它来对项目进行自定义验证。如果用户输入特定值,我希望验证失败并返回错误。 Here 我试图告诉用户他们不能在名字字段中输入值 'John'。我设置了红色感叹号,但 invalidMessage 没有显示。
我希望当用户单击感叹号时,他们可以看到错误消息,并且当他们开始键入或更改字段内容时,不再显示感叹号和错误消息。
Jsp
<body class="claro">
<form id="myform" data-dojo-type="dijit/form/Form">
<input
data-dojo-type="dijit/form/ValidationTextBox"
data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'Invalid First Name !',
missingMessage: 'First Name Required !'"
id="fnameTextBox" title="First Name"
placeholder="Your First Name"
/>
<input
data-dojo-type="dijit/form/ValidationTextBox"
data-dojo-props="
regExp: '[\\w]+',
required: true,
invalidMessage: 'Invalid Last Name !',
missingMessage: 'Last Name Required !'"
id="lnameTextBox" title="Last Name"
placeholder="Your Last Name"
/>
<button id="validateFields" data-dojo-type="dijit/form/Button">Validate</button>
</form>
</body>
Javascript
dojo.require("dijit/form/Form");
dojo.require("dijit/form/Button");
dojo.require("dijit/form/ValidationTextBox");
dojo.require("dijit/Tooltip");
dojo.ready(function() {
var fName = dijit.byId("fnameTextBox");
var lName = dijit.byId("lnameTextBox");
dojo.connect(dijit.byId("validateFields"), "onClick", function() {
var myform = dijit.byId('myform');
myform.connectChildren();
if(fName == "John"){
dijit.byId("fnameTextBox")._set("state","Error");
dijit.byId("fnameTextBox").attr('_ErrorMessage', 'John is not allowed');
}else{
myform.validate();
}
});
});
【问题讨论】:
标签: javascript validation dojo dijit.form