[英]Form validation: change message location
Using a jquery Form validation script, an " OK! " message is displayed when the input is correct. 输入正确时,使用jquery表单验证脚本显示“ OK! ”消息。 Instead of having this " OK! " message under the field, I'd like to have it on the right side of the field (with the error messages still under the field) as shown on the picture below:
与其在该字段下显示此“ OK! ”消息,不如将其显示在该字段的右侧(错误消息仍在该字段下),如下图所示:
Here is a working fiddle: https://jsfiddle.net/q7nub2v4/1/ 这是一个有效的小提琴: https : //jsfiddle.net/q7nub2v4/1/
And the corresponding code: 以及相应的代码:
<!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>
Just override form-control
class of Bootstrap
只需覆盖
Bootstrap
form-control
类
.controls input.form-control{
width: 90%;
display: inline-block;
margin-right: 5px;
}
i thing this is what you want 我想这就是你想要的
<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">
<div class="col-xs-11">
<input type="text" name="username" id="username" class="form-control" placeholder="user"/>
</div>
<div class="col-xs-1 success-msg"></div>
<div class="clearfix"></div>
</div>
</div>
<div class="control-group has-feedback">
<label class="control-label" for="email">Email</label>
<div class="controls">
<div class="col-xs-11">
<input type="text" name="email" id="email" class="form-control" placeholder="email"/>
</div>
<div class="col-xs-1 success-msg"></div>
<div class="clearfix"></div>
</div>
</div>
<div class="control-group has-feedback">
<label class="control-label" for="password">Password</label>
<div class="controls">
<div class="col-xs-11">
<input type="password" name="password" id="password" class="form-control" placeholder="pass"/>
</div>
<div class="col-xs-1 success-msg"></div>
<div class="clearfix"></div>
</div>
</div>
<br>
<button type="submit" class="btn btn-primary">submit</button>
</div>
</form>
and the javascript 和JavaScript
$(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.parent().next().text('OK!').addClass('valid')
.closest('.control-group').removeClass('has-error').addClass('has-success');
}
});
});
use it...........
<!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>
<style>
.error
{
display: inline-block;
float: left;
width: 109px;
font-size: 11px;
line-height: 10px;
padding: 0px 5px 5px;
}
.controls input
{
display:inline-block;
float:left;
width:auto;
}
.has-feedback
{
display:block;
clear:both;
}
.has-feedback .form-control
{
padding-right:0px;
}
.cutom-btn
{
display:block;
clear:both;
padding:15px 0px;
}
</style>
</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>
<div class="cutom-btn">
<button type="submit" class="btn btn-primary">submit</button>
</div>
</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>
just add a new class called reStyle: 只需添加一个名为reStyle的新类:
<label class="error valid reStyle" for="email" id="email-error">OK!</label>
Then at your CSS add these lines: 然后在您的CSS上添加以下行:
.valid {float: right;}
.reStyle{position: relative; top: -30px; right: -30px;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.