当前位置: 首页 > 面试题库 >

jQuery验证插件-错误突出显示问题

东郭弘
2023-03-14
问题内容

我有一个带有两个输入文本框的表单,并且我包括了两个的jQuery验证规则:

<script src="../../Scripts/jquery-validate/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
    $('#respondForm').validate({ onclick: false,
      onkeyup: false,
      onfocusout: false,
      highlight: function(element, errorClass) {
        $(element).css({ backgroundColor: 'Red' });
      },
      errorLabelContainer: $("ul", $('div.error-container')),
      wrapper: 'li',
      rules: {
        'text': {
          required: true,
          minlength: 5,
          maxlength: 10
        },
        integer: {
          required: true,
          range: [0, 90]
        }
      },
      messages: {
        'text': {
          required: "xxx_Required",
          minlength: "XXX Should be greater than 5",
          maxlength: "XXX Cannot be greater than 10"
        },
        integer: {
          required: "is required",
          range:  "is out of range: [0,90]"
        }
      }
    });
  });
</script>
</head>
.
.
.
<input type="text" id="text" name="text" />    
<br />
<input type="text" id="integer" name="integer" />
<br />
<input type="submit" name="submit" value="Submit" />
<br />

我用过了:

function(element, errorClass) {
  $(element).css({ backgroundColor: 'Red' });
}

突出显示错误控制。现在的问题是,在以下情况下,两个输入文本框都保持突出显示(背景色:红色):

  1. 在文本框1中输入少于5个字符的文本
  2. 将文本框2留空
  3. 点击提交
  4. 两个输入文本框的背景都将更改为红色(正确)
  5. 现在,在文本框1中输入一个包含6个字符的文本(有效输入)
  6. 将文本框2留空
  7. 点击提交
  8. 两个文本框的背景颜色仍为红色。可以预期的是,文本框1的背景色不应为红色

我该如何解决这个问题?


问题答案:

找到答案后,您还必须提供一个unhighlight属性。

将错误类添加到无效元素及其标签中

$(".selector").validate({
  highlight: function(element, errorClass) {
     $(element).addClass(errorClass);
     $(element.form).find("label[for=" + element.id + "]")
                    .addClass(errorClass);
  },
  unhighlight: function(element, errorClass) {
     $(element).removeClass(errorClass);
     $(element.form).find("label[for=" + element.id + "]")
                    .removeClass(errorClass);
  }
});


 类似资料:
  • 问题内容: 如何显示jQuery插件的单独错误消息和摘要? 我实际上发现了一个类似的问题,但是它只是引用了一些我可以使用的钩子,但是我不确定从哪里开始。 我得到了显示单个错误消息的部分,但是我需要在提交时在警报框中显示摘要,并且可以在此处找到插件。 刚刚了解了如何,感谢David的代码,以及我的后续问题-警报框为“名字:请输入一个有效的名字”。 代码如下: 问题答案: 正如链接的问题所述,只要显示

  • 我用的是MPAndroidChart,我有一个x轴从0到11的条形图。 我添加了setOnChartValueSelectedListener,但突出显示了。getX()返回8,即使单击最后一个栏,也应该是11。 我在做什么: 创建一个包含几个条目的BarData对象-基本上每月1个,其中x值是月份数(0到11) 在图表上设置ChartValueSelectedListener 运行应用程序,水平

  • 我在IntelliJ IDEA2020.1.2(终极版)中打开一个spring boot项目,并在实体中打开许多错误突出显示,例如: 无法解析表“角色” 类“RolesEntity”应具有[public,protected]无arg构造函数 无法解析表“user_roles” 但是当我在IntelliJ IDEA2019.3.3(社区版)这样的旧版本中打开我的项目时,我就看不出这个问题了。 Int

  • 我正在研究从EclipseScalaIDE切换到Intellij15Scala插件。 我可以在Messages工具中看到编译错误的报告,但在项目树中看不到任何包含错误的源文件的突出显示。 这个功能不可用吗?如果没有,你如何应对?我是不是被日食宠坏了,应该学会“忍受”呢? 更新此问题不同于IntelliJ-显示错误的位置,因为: 这个问题与文件夹/文件树视图中文件的视觉指示器有关

  • 目前支持对以下格式的值进行验证:   cnum*-*(纯数字),   char*-*(纯字母),   zwen*-*(中文),   bysc*-*(字母开头),   mail(邮箱),   yzbm(邮政编码)      *    其中的‘*’表示长度,比如“zwen1-5”表示中文1-5位的长度。同时支持“zwen”(只能是中文),“zwen5-*”(5位长度的文字),其他的数据类型如同上面所示。