javascript - JQuery:如何在填写表单时实时显示错误?

标签 javascript jquery html css twitter-bootstrap

我想对用户输入进行“实时”验证。例如,直到用户在输入中没有写下至少 4 个字符,表格必须用红色圈起来。

现在这是我的代码,其中红色仅在用户提交表单后出现:

$(function(){

        $("form").on("submit", function() {

          if($("input").val().length < 4) {

            $("div.modal-dialog").addClass("has-error");

            $("div.alert").show("slow").delay(4000).hide("slow");

            return false;

          }

        });

      });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">      
      <div id="html">
        <button data-toggle="modal" data-backdrop="false" href="#formu" class="btn btn-primary">Informations</button>
      </div>
      <div class="modal fade" id="formulaire">
        <div class="modal-dialog">
          <div class="modal-content">

            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal">x</button>
              <h4 class="modal-title">Your infos :</h4>
            </div>

            <div class="modal-body">
              <form action="#">

                <div class="form-group">
                  <label for="nom">Nom</label>
                  <input type="text" class="form-control" name ="nom" id="nom" placeholder="Votre nom">
                </div>

                <button type="submit" class="btn btn-default">Envoyer</button>
              </form>

            </div>

          </div>
        </div>
    </div>
</div>

我已经在 Google 上查过,有一个名为 Formvalidation 的库,但它是付费的,我希望能够在没有 jQuery 之外的任何额外库的情况下实现这种效果。

最佳答案

请检查这段代码

<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.16.0/jquery.validate.js"></script>
<script type="text/javascript">

$(document).ready(function () {

    $('#test_form').validate({ 
        focusInvalid: true,
        onkeyup: true,
        rules: {
            nom: {
                required: true,
                minlength: 4
            }
        },
        messages: {
            nom: {
                required: "Nom is required."
            }
        },errorPlacement: function (error, element) {
        alert(error.text());
    }
    });

});
</script>

<style type="text/css">
label.error {
border: 1px solid red;
color: red;
}
</style>

这是你的 html 表单

<form id="test_form">
<div class="container">      
    <div id="html">
        <button data-toggle="modal" data-backdrop="false" href="#formu" class="btn btn-primary">Informations</button>
    </div>
    <div class="modal fade" id="formulaire">
        <div class="modal-dialog">
            <div class="modal-content">

                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">x</button>
                    <h4 class="modal-title">Your infos :</h4>
                </div>

                <div class="modal-body">
                    <form action="#">

                        <div class="form-group">
                            <label for="nom">Nom</label>
                            <input type="text" class="form-control" name ="nom" id="nom" placeholder="Votre nom">
                        </div>

                        <button type="submit" class="btn btn-default">Envoyer</button>
                    </form>

                </div>

            </div>
        </div>
    </div>
</div>
</form>

如果你想添加更多验证那么你也可以添加这个

关于javascript - JQuery:如何在填写表单时实时显示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42607601/

相关文章:

javascript - 如何将百分比分配给 CSSStyleDeclaration 的属性

javascript - 单击时重新启动音频和动画?

python - 如何使用selenium选择单选按钮

html - 如何删除与另一个元素的边框的一部分?

css - HTML5 的悬停导航链接将不起作用

javascript - 如何实现AES-512算法?

javascript - javascript中用空格分隔的字符串对象

javascript - 无法在我的 jquery 模板中使用全局变量

Javascript forEach - 在迭代之前等待 setTimeout 完成

javascript - 对于像alert()这样的JavaScript方法,您将()中的内容称为什么?