当前位置: 首页 > 知识库问答 >
问题:

剑道UI-验证程序消息覆盖和空错误数组

荀振国
2023-03-14

我遇到了剑道验证器的问题。设置了三个字段进行验证。在它们之间切换,名字和姓氏字段显示预期的消息,但在切换开始日期字段后,名字和姓氏消息将替换为开始日期消息。然后,在调用validate()方法时,即使验证失败,错误数组也是空的。此外,如果单击“保存”按钮而不在字段之间切换,则字段的错误根本不会显示。

另一件奇怪的事是,如果删除消息的跨度,所有消息都会显示在名字字段旁边-它们不会显示在相应的输入旁边。

任何能让它正常工作的见解都将不胜感激。

脚本和HTML:

 $(document).ready(function() {
   $("#fn").kendoMaskedTextBox();
   $("#ln").kendoMaskedTextBox();
   $("#from").kendoDatePicker({
     format: "MM/dd/yyyy"
   });
   $("#thru").kendoDatePicker({
     format: "MM/dd/yyyy"
   });
   $("#btnSave").kendoButton({
     icon: "tick",
     click: function() {
       if (!vld.validate())
         alert(vld.errors.length);
     }
   });

   var vld = $("#myForm").kendoValidator().data('kendoValidator');

 })
<div id="myForm">
  <p>
    <label for="fn" class="myLabel">First Name:</label>
    <input id="fn" required validationMessage="{0} Required" />
    <span class="k-invalid-msg" data-for="fn"></span>
  </p>
  <p>
    <label for="ln" class="myLabel">Last Name:</label>
    <input id="ln" required validationMessage="{0} Required" />
    <span class="k-invalid-msg" data-for="ln"></span>
  </p>
  <p>
    <label for="from" class="myLabel">Period:</label>
    <input id="from" required validationMessage="From date is required" />
    <span> - </span>
    <input id="thru" />
    <span class="k-invalid-msg" data-for="from"></span>
  </p>
  <p>
    <label class="myLabel"></label>
    <button id="btnSave" class="btn">Save</button>
  </p>
</div>

jsfiddle链接:http://jsfiddle.net/artrfkmw/1/

共有1个答案

左丘宜然
2023-03-14

好的,这项工作的诀窍似乎是将消息范围属性的数据值设置为输入标记的name属性,而不是id标记。因此,在上面的示例中,向输入元素添加名称标记是一种快速修复方法:

<div id="myForm">
    <p>
        <label for="fn" class="myLabel">First Name:</label>
        <input id="fn" name="fn" required validationMessage="{0} Required" />
        <span class="k-invalid-msg" data-for="fn"></span>
    </p>
    <p>
        <label for="ln" class="myLabel">Last Name:</label>
        <input id="ln" name="ln" required validationMessage="{0} Required" />
        <span class="k-invalid-msg" data-for="ln"></span>
    </p>
    <p>
        <label for="from" name="from" class="myLabel">Period:</label>
        <input id="from" required validationMessage="From date is required" />
        <span> - </span>
        <input id="thru" />
        <span class="k-invalid-msg" data-for="from"></span>
    </p>
    <p>
        <label class="myLabel"></label>
        <button id="btnSave" class="btn" >Save</button>
    </p>
</div>
 类似资料:
  • 我想覆盖服务器faces web应用程序中的默认Hibernate验证程序消息,因此我阅读了这部分文档:https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/chapter-message-interpolation.html#section-消息插值 我在文件夹中创建了两个文件:和。文件内容为: 我使用的是德语版本

  • 如何覆盖symfony2中的表单验证消息。虽然有一个验证。与xml文件相关的模型类。我认为它验证了一个基于html5的表单。 “请匹配要求的格式”,“请填写此字段”。是否有任何方法覆盖此验证消息。 请在这方面帮助我,我被困了一天多,因为我对symfony是全新的

  • 这里有人知道如何在安装过程中覆盖验证消息吗。 我希望能够在安装期间$('form')。parsley()更改/定义验证消息,例如: data parsley required message=“一些相关的自定义消息” 我希望将该字段分配给所有验证,因此如果该字段设置为必需,它将显示自定义消息作为默认值。 提前感谢8-)

  • 我正在一个Spring MVC项目中使用Hibernate Validator来验证表单中的输入字段。由于我的项目是基于Maven的,所以我添加了这个依赖项: 表单验证过程运行良好,但现在,我想重写或国际化默认错误消息。 例如,默认情况下,使用@notempty注释将产生消息“maynot be empty”。我怎样才能用我自己的消息代替这个消息?我试过几种解决方案: null 有什么提示吗?Th

  • 我有以下资料: 我需要覆盖所有jsf所需验证的输入组件消息。 默认值:"登录:验证错误。Vous Devez Indiquer une Valur。" 自定义:“登录:est要求。” 我已经在com中创建了一个属性文件。应用程序。包含以下行的foo命名消息: 此外,我已在faces配置中注册了它,如下所示: 但我仍然得到了默认的必需验证消息。

  • 本文向大家介绍覆盖HTML5验证,包括了覆盖HTML5验证的使用技巧和注意事项,需要的朋友参考一下 要忽略HTML验证,可以使用JavaScript删除单击按钮时的属性。 您必须从每个匹配的元素中删除一个属性。