【问题标题】:How to change only error message color of input form-control如何仅更改输入表单控件的错误消息颜色
【发布时间】:2020-06-04 12:21:30
【问题描述】:

我正在尝试设计我的第一个网站。 我正在使用 Bootstrap 4 和 jquery 验证插件,我现在正在做一个表单。我有两个问题: 首先,我只想更改输入下方错误消息的颜色,但我的样式更改了输入文本大小/颜色和错误消息文本大小/颜色,我怎样才能只更改输入下方的错误文本?

第二个问题是,在我的代码中,我应该在哪里更改 Bootstrap 表单控件状态,这取决于是否有效?

这是我目前的代码:

$('document').ready(function(){

    $('#registration_form').validate({
        rules: {
            username: {
                required: true,
                maxlength: 10,
                minlength: 3
            },
            email: {
                required: true,
                email: true
            },
            email_con: {
                required: true,
                equalTo: "#email"
            },
            password: {
                required: true,
                minlength: 7
            },
            password_con: {
                required: true,
                equalTo: "#password"
            },
            formCheck: {
                required: true
            },
        }
    });
});
        .error{
          color: red;
          font-Size: 13px;
        }
                                <div class="form-row form-group">
                                    <div class="col-sm-4 col-xl-3 text-center d-xl-flex justify-content-xl-center align-items-xl-center label-column"><label class="col-form-label">Email* :</label></div>
                                    <div class="col-sm-6 input-column"><input class="form-control" type="email" name="email" id="email" placeholder="name@mail.com"></div>
                                </div>

【问题讨论】:

  • 你在哪里有“错误”类的元素@BMW3000
  • @BMW3000,你能在 css 中尝试#name-error 而不是.error ..

标签: javascript jquery html css bootstrap-4


【解决方案1】:

如果您只想更改error text message 的颜色,请编写label.error{color: red;} 并遵循以下html 结构。

$(document).ready(function(){
  $('#registration_form').validate({
    rules: {
      email: {
        required: true,
        email: true
      }
    }
  });
});
label.error{
  color: red;
  font-size: 13px;
}
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>

<div class="container my-2">
  <div class="row">
    <form class="col-sm-12" action="#" id="registration_form">
      <div class="form-row form-group">
        <div class="col-sm-4 text-sm-right">
          <label class="col-form-label" for="email">Email* :</label>
        </div>
        <div class="col-sm-6">
          <input class="form-control" type="email" name="email" id="email" placeholder="name@mail.com">
        </div>
      </div>
      <div class="form-row form-group">
        <div class="col-sm-6 offset-sm-4">
          <button type="submit" class="btn btn-success">Submit</button>
        </div>
      </div>
    </form>
  </div>
</div>

【讨论】:

    【解决方案2】:

    当涉及到引导程序的使用时,有一些类可以处理验证。试试这样

    <div class="container">
    <p class="h1">Register</p>
    
    <form class="needs-validation" novalidate>
    <div class="form-group">
      <label for="email">E-mail</label>
      <input type="email" class="form-control" id="email"
             placeholder="E-mail" required>
      <div class="valid-feedback">
        Looks good!
      </div>
      <div class="invalid-feedback">
        The e-mail is required!
      </div>
    </div>
    
    <div class="form-group">
      <label for="password">Password</label>
      <input type="password" class="form-control" id="password"
             placeholder="Password" required minlength="6">
      <div class="valid-feedback">
        Great!
      </div>
      <div class="invalid-feedback">
        The password must contain at least 6 characters!
      </div>
    </div>
    
    <div class="form-group mt-3">
      <button class="btn btn-primary" type="submit">Register!</button>
    </div>
    </form>
    </div>
    
    <script>
    (function() {
    window.addEventListener('load', function() {
      var forms = document.getElementsByClassName('needs-validation');
    
      var validation = Array.prototype.filter.call(forms, function(form) {
        form.addEventListener('submit', function(event) {
          if (form.checkValidity() === false) {
            event.preventDefault();
            event.stopPropagation();
          }
          form.classList.add('was-validated');
        }, false);
      });
    }, false);
    })();
    </script>
    

    【讨论】:

      【解决方案3】:

      您可以在整页中运行 sn-p 并检查此答案

      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
      <div class="container">
        <p class="h1">Register</p>
      
        <form class="needs-validation" novalidate>
          <div class="form-group">
            <label for="email">E-mail</label>
            <input type="email" class="form-control" id="email"
                   placeholder="E-mail" required>
            <div class="valid-feedback">
              Looks good!
            </div>
            <div class="invalid-feedback">
              The e-mail is required!
            </div>
          </div>
      
          <div class="form-group">
            <label for="password">Password</label>
            <input type="password" class="form-control" id="password"
                   placeholder="Password" required minlength="6">
            <div class="valid-feedback">
              Great!
            </div>
            <div class="invalid-feedback">
              The password must contain at least 6 characters!
            </div>
          </div>
      
          <div class="form-group mt-3">
            <button class="btn btn-primary" type="submit">Register!</button>
          </div>
        </form>
      </div>
      
      <script>
        (function() {
          window.addEventListener('load', function() {
            var forms = document.getElementsByClassName('needs-validation');
      
            var validation = Array.prototype.filter.call(forms, function(form) {
              form.addEventListener('submit', function(event) {
                if (form.checkValidity() === false) {
                  event.preventDefault();
                  event.stopPropagation();
                }
                form.classList.add('was-validated');
              }, false);
            });
          }, false);
        })();
      </script>

      【讨论】:

      • 这是BS4 validation,但有问题定义jquery-validate,所以第一个问题是需要什么。
      猜你喜欢
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 2016-06-17
      • 2020-04-11
      相关资源
      最近更新 更多