javascript - JQuery 使用 Bootstrap 4 验证表单输入和突出显示标签

标签 javascript jquery twitter-bootstrap bootstrap-4 jquery-validate

<分区>

I have read I have read Bootstrap with jQuery Validation Plugin and it's helpful, but it's Bootstrap 3, not Bootstrap 4..

我正在使用 JQuery Validate使用Bootstrap 4,但似乎无法将标签 输入字段获取到highlight无效时为红色。

我认为 validinvalid 输入类在 BS 中是默认的,link ?也许我没有正确使用它们。

我的代码在下面,这是一个 fiddle .

HTML

<form id="myform">
  <div class="row">
    <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
      <div class="form-group">
        <label for="name" class="control-label">Email address</label>
        <input type="text" class="form-control" id="name" name="name" placeholder="Name" required>
      </div>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

JQuery

$(function() {
  $("#myform").validate({
    rules: {
      name: {
        required: true,
        minlength: 2
      }
    },
    highlight: function(element) {
      $(element).closest('.form-group').removeClass('valid').addClass('invalid');
    },
    unhighlight: function(element) {
      $(element).closest('.form-group').removeClass('invalid').addClass('valid');
    },
  });
})

感谢任何帮助。

最佳答案

这些类在 the most recent release 中发生了变化. valid 重命名为 is-validinvalid 重命名为 is-invalid

此外,它们需要应用于输入,而不是输入组包装器。

编辑:

如果您希望突出显示输入和标签,则需要重新排序。

$(function() {
  $("#myform").validate({
    rules: {
      name: {
        required: true,
        minlength: 2
      }
    },
    highlight: function(element) {
      $(element).removeClass('is-valid').addClass('is-invalid');
    },
    unhighlight: function(element) {
      $(element).removeClass('is-invalid').addClass('is-valid');
    },
  });
})
.reversed{padding: 3rem 0 0 0;}
.reversed .control-label{margin: -4.5rem 0 0 0; float: left;}

input.is-valid ~ label{color: green;}
input.is-invalid ~ label{color: red;}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>

<form id="myform">
  <div class="row">
    <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
      <div class="form-group reversed"><!-- added reversed class -->
        <input type="text" class="form-control" id="name" name="name" placeholder="Name" required>
        <label for="name" class="control-label">Email address</label>
      </div>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

关于javascript - JQuery 使用 Bootstrap 4 验证表单输入和突出显示标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52426171/

相关文章:

javascript - 悬停时更改 div 内的图片(带边框)

javascript - 使用 javascript ajax post 请求时在 Instagram API 中获取重复图像

javascript - 如何在 Neo4j 2.2.x 中使用 JQuery 事务性 Cypher HTTP 端点和新的 REST API 身份验证和授权

javascript - Tampermonkey:在动态 AJAX 页面上按下按钮时复制源代码

c# - JSON Post 我的 .NET MVC 2 Controller 需要什么参数

jquery - Bootstrap Modal 可以在没有按钮的情况下使用吗? (jQuery 滚动事件)

javascript - 将 php 值作为参数传递

jquery - 使用 jQuery 读取 CSV 文件

twitter-bootstrap - Bootstrap 4 导航药片不起作用

css - 具有不同图像高度的 Bootstrap 网格