【问题标题】:check input on length and use bootstrap validation检查长度输入并使用引导验证
【发布时间】:2021-12-21 06:47:48
【问题描述】:

我有 - 我想是的 - 一个非常简单的问题。我正在与Bootstrap 4.6 合作,我想为我的input 提供一个form-validation

我需要检查我的 input 的长度是否为 5 或小于 validation 应该是“未满档”(红色),否则如果它等于或高于 5 则应该满档,所以应该是绿色。

红色:

绿色:

我想从 Bootstrap 4.6 中获得 validation - 这是该组件的链接:https://getbootstrap.com/docs/4.6/components/forms/#validation

提前感谢您帮助我!

在这里你可以看到我的代码:

<form class="was-validated">
  <div class="mb-3">
    <label for="validationTextarea">Textarea</label>
    <input class="form-control" id="validationTextarea" placeholder="Required example textarea" onkeyup="checkInput()" required></input>
  </div>
</form>
function checkInput() {
  var input = document.getElementById("validationTextarea").value;

  if(input.length < 5) {
    //it should be red
  } else if (input.length >= 5) {
    //it should be green
  }
}

【问题讨论】:

  • 不清楚你到底想要什么。请尽可能清楚。 我需要检查我的输入的长度是否为 5 或小于验证是否应该是“未填充”(红色),否则如果它等于或大于 5,则它应该是完整的,所以它应该是绿色的。 i> 和 我想从 Bootstrap 4.6 中获得验证,并且不想将我的字母涂成红色..
  • 您好,已更新。希望现在添加一些图片后它的外观就很清楚了!

标签: javascript validation bootstrap-4


【解决方案1】:

如果你想要自定义验证,那么你可以

1)form 元素中移除was-validated 类,因为您要添加自定义验证

  <form class="m-3"> 
    <div class="mb-3">
      <label for="validationTextarea">Textarea</label>
      <input class="form-control is-invalid" id="validationTextarea" placeholder="Required example textarea" onkeyup="checkInput()" required></input>
    </div>
  </form>

2) 现在是逻辑部分,如果values.length &lt; 5 则必须添加is-invalid 类,否则添加is-valid 类。

const input = document.querySelector("#validationTextarea");

function checkInput() {
    var value = document.getElementById( "validationTextarea" ).value;

    if ( value.length < 5 ) {
        input.classList.remove( "is-valid" );
        input.classList.add( "is-invalid" );
    } else {
        input.classList.add( "is-valid" );
        input.classList.remove( "is-invalid" );
    }
}

const input = document.querySelector("#validationTextarea");

function checkInput() {
  var value = document.getElementById("validationTextarea").value;

  if (value.length < 5) {
    input.classList.remove("is-valid");
    input.classList.add("is-invalid");
  } else {
    input.classList.add("is-valid");
    input.classList.remove("is-invalid");
  }
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>


<form class="m-3">
  <div class="mb-3">
    <label for="validationTextarea">Textarea</label>
    <input class="form-control is-invalid" id="validationTextarea" placeholder="Required example textarea" onkeyup="checkInput()" required></input>
  </div>
</form>

【讨论】:

  • 完美解决方案 - 没有考虑 addremove - 谢谢! :)
猜你喜欢
  • 1970-01-01
  • 2011-04-12
  • 2012-08-23
  • 2019-07-09
  • 2015-02-23
  • 2013-05-15
  • 1970-01-01
  • 2016-05-09
  • 2011-11-19
相关资源
最近更新 更多