【问题标题】:dojo validationTextBox invalid message or prompt message not appearingdojo validationTextBox 无效消息或提示消息未出现
【发布时间】:2013-08-23 12:58:34
【问题描述】:

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

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

必填属性突出显示文本框,但未显示消息
在这里输入代码 我的测试

<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>

谢谢 沙丝

【问题讨论】:

    标签: dojo


    【解决方案1】:

    您使用了 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>
    

    【讨论】:

    • 任何人都可以帮助解决这个问题。我真的卡住了
    • 我推断的是,你的路径是错误的。让我给你一个线索。在应用程序文件夹内(在我的情况下,“应用程序”文件夹位于 tomcat 的“webapps”文件夹内),放置了 html 文件。然后,它有一个名为“js”的文件夹,用于存储所有 javascript 内容,其中包含 dojo 库。 webapps |-application(在tomcatroot的webapps文件夹中)|-index.html(在应用程序文件夹中)|-js(在应用程序文件夹中)|-dojo(在js文件夹中)|-dijit(在js中)|-dojox(在js中) ) |-util (js 内部)
    • 请注意,在我的示例中,我使用了相对路径。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2018-01-20
      相关资源
      最近更新 更多