0

我一直在尝试显示来自validationTextBox 的无效消息,它是如何不工作的。我从互联网上复制粘贴了示例,即使它不起作用。

我正在使用 dojo 1.8 下面是我的示例代码

required 属性突出显示文本框但未显示消息
在此处输入代码 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>我的测试

<link rel="stylesheet" type="text/css"
    href="../MyTest2/js/dojoRoot/dijit/themes/claro/claro.css">

<script type="text/javascript">
        dojo.require("dijit.form.ValidationTextBox");
        dojo.require("dijit.form.Form");
    </script>
</head>
<body class="claro">
    <form id="addForm" dojoType="dijit.form.Form" action="save" method="post">
        <table>
        <tr>
                <td>First Name</td>
        <td><input type="text" name="firstName" id="firstName"
            value="someTestString" required="true" dataType="dijit.form.ValidationTextBox"                  promptMessage="please enter first name"                     invalidMessage="first name is empty" /></td>
            </tr>
    </table>
    </form>

谢谢沙丝

4

2 回答 2

0

您已经使用了 dataType 属性。它是“dojoType”。现在,“dojoType”已被“data-dojo-type”取代。你把它误认为是数据类型。您可以使用“dojoType”或“data-dojo-type”另外,使用missingMessage 属性在用户移出字段时显示消息,而无需提供输入。“required”与“missingMessage”一起使用 promptMessage 用作工具提示。当用户专注于该领域时显示。当焦点从字段移开时,如果提到的任何约束不满足,则使用 invalidMessage。让我给你一个小例子。

<html>
<head>
<style type='text/css'>
    @import "./js/dijit/themes/claro/claro.css";
</style>
<script type='text/javascript' src='./js/dojo/dojo.js' djConfig="parseOnLoad:true,isDebug:false">
</script>
<script type='text/javascript'>
    dojo.require("dijit.form.ValidationTextBox");
</script>
</head>
<body class="claro">
    <input type="text" dojoType="dijit.form.ValidationTextBox" id="namefld" name="namefld" required="true" missingMessage="Input is required for Name!" promptMessage="Pease enter you name!" regExp="[a-zA-Z]+" invalidMessage="Wrong input! Please correct!"/>
</body>
</html>
于 2013-08-24T08:46:56.673 回答
0

我使用的是 Dojo 的不同版本 (1.9),但如果您的问题主要是外观问题,请注意以下两点:

  1. 某些表单元素在用户实际单击它们或使用键盘将焦点赋予它们之前不会显示任何红色错误标记。这在某些情况下是有意义的,例如侧边栏中的可选登录表单。为避免这种情况,您可以这样做data-dojo-props="required:true, _hasBeenBlurred:true"并使_hasBeenBlurred小部件假定用户之前已经与它进行过一次交互。
  2. 如果您尝试在文本输入字段中获取“提示”(例如“输入名称...”),它可能不适用于某些不支持HTML5placeholder属性的 IE 版本。
于 2013-08-29T23:33:58.673 回答