当标签为'display:block'时,JavaScript会失去对第一个无效字段(jQuery Validation)的关注

oyt4ldly  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(139)

当错误消息(标签)“display:block”时,Javascript在“unhighlight”事件(jQuery Validation)上失去对第一个无效字段的关注。
我使用最新的jQuery验证的纯代码:jquerycom/插件/验证

body {padding:20px;}
/*label.error {display:block;}*/
label.error {color:red;}
p {padding-bottom:15px;}

产品编号:http://jsfiddle.net/352TH/3/
1.我的错误标签在css中是'inline'。
1.按提交按钮->显示两个错误,关注电子邮件字段。
1.将有效电子邮件写入电子邮件字段。
1.按Submit按钮->显示一个错误,focus在comment字段。
现在只是css代码中取消注解的/*label.error { display:block; }*/

body {padding:20px;}
label.error {display:block;}
label.error {color:red;}
p {padding-bottom:15px;}

产品编号:http://jsfiddle.net/352TH/4/
1.我的错误标签是css中的'display:block'。
1.按提交按钮->显示两个错误,关注电子邮件字段。
1.将有效电子邮件写入电子邮件字段。
1.按Submit按钮->显示一个错误,注解字段无焦点
:(

l7mqbcuq

l7mqbcuq1#

试试这个。在你的代码中你有:

$(function(){
    $("#commentForm").validate({
        errorLabelContainer: '.validationSummary'
    });
});

将其更改为:

$("#commentForm").validate(function(){
    errorLabelContainer: '.validationSummary'
});

请看下面的代码片段:

$("#commentForm").validate(function() {
  errorLabelContainer: $('.validationSummary')
});
body {
  padding: 20px;
}

label.error {
  color: red;
}

p {
  padding-bottom: 15px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<!DOCTYPE HTML>
<html>

<head>
  <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
</head>

<body>
  <form id="commentForm" method="get" action="">
    <div class="validationSummary"></div>
    <p>
      <label for="email">E-Mail*</label><br />
      <input id="email" name="email" size="25" class="required email" />
    </p>
    <p>
      <label for="comment">Your comment*</label><br />
      <textarea id="comment" name="comment" cols="22" class="required"></textarea>
    </p>
    <p>
      <input class="submit" type="submit" value="Submit" />
    </p>
  </form>
</body>

</html>

相关问题