javascript - 表单验证 : change message location

标签 javascript jquery html css

使用 jquery 表单验证脚本,当输入正确时显示“OK!”消息。我不想在字段下方显示“OK!”消息,而是将其放在字段右侧(错误消息仍在字段下方),如下图所示:

enter image description here

这是一个有效的 fiddle :https://jsfiddle.net/q7nub2v4/1/

以及对应的代码:

    <!DOCTYPE html>
    <html lang="fr">
    <head>

    <link rel="stylesheet" type="text/css" href="https://bootswatch.com/cerulean/bootstrap.min.css" />

    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.js"></script>
    <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/jquery.validate.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.14.0/additional-methods.js"></script>

    </head>

    <form id="registration-form" action="#" method="POST">

    <div class="col-sm-5"> 
        <div class="control-group has-feedback">
            <label class="control-label" for="username">Username</label>
            <div class="controls">
            <input type="text" name="username" id="username" class="form-control" placeholder="user"/>
            </div>
        </div>

        <div class="control-group has-feedback">
            <label class="control-label" for="email">Email</label>
            <div class="controls">
            <input type="text" name="email" id="email" class="form-control" placeholder="email"/>
            </div>
        </div>

        <div class="control-group has-feedback">
            <label class="control-label" for="password">Password</label>
            <div class="controls">
            <input type="password" name="password" id="password" class="form-control" placeholder="pass"/>
            </div>

        </div>

        <br>

        <button type="submit" class="btn btn-primary">submit</button>

     </div>

    </form>


    <script>

    $(document).ready(function () {

        $('#registration-form').validate({
            rules: {
                username: {
                    rangelength: [6, 16], 
                    pattern:/^[a-zA-Z0-9_-]+$/,
                    required: true
                },
                email: {
                    required: true,
                    email: true
                },
                password: {
                    rangelength: [8, 12],
                    required: true,

                }

            },

            highlight: function (element) {
                $(element).closest('.control-group').removeClass('has-success').addClass('has-error');
            },
            success: function (element) {
                element.text('OK!').addClass('valid')
                    .closest('.control-group').removeClass('has-error').addClass('has-success');
            }
         });

    });

    </script>

最佳答案

在右边留一些空间(例如:输入宽度90%)然后将输入框显示设置为“inline-block”。

input[type=text], input[type=password] {  
width: 90%;
display: inline-block;
margin-right: 5px;
}

jsfiddle

关于javascript - 表单验证 : change message location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35697003/

相关文章:

javascript - 如何使 div 向页面上的另一个元素缩小 100% 到 0%

javascript - jQuery slider 在鼠标悬停时不会停止

jQuery 验证 :date - mysql format

javascript - 设置最大高度而不溢出

javascript - 解析node.js中的html内容

javascript - 预加载网站

javascript - 带有模式显示的mysql数据的variabel php

javascript - 如何停止 CSS3 过渡

javascript - 如何正确运行 firebase 函数?

php - 如何使用ajax将输入文件数据值发送到php页面