【发布时间】:2017-11-16 00:25:27
【问题描述】:
我有一个运行良好的引导验证表单,还可以更改 error 和 success 上的 inputField 颜色。
问题是,我想更改标签的text-color和border-color。我尝试了各种 JavaScript 代码,但没有一个适合我,因为我不熟悉 javascript。
HTML
<form action="" class="form-horizontal form-bordered storyForm" novalidate>
<div class="form-body">
<div class="form-group" id="form-group">
<div class="controls">
<label class="control-label" id="label" for="email">Email</label>
<input type="email" id="email" class="form-control" name="email" required data-validation-required-message="This field is required">
</div>
</div>
<div class="form-group" id="form-group">
<div class="controls">
<label class="control-label" id="label" for="password">Password</label>
<input type="password" id="password" class="form-control" name="password" required data-validation-required-message="This field is required">
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="offset-sm-3 col-md-9">
<button type="submit" id="submit" class="btn btn-success"> <i class="fa fa-check"></i> Submit</button>
<button type="button" class="btn btn-inverse">Cancel</button>
</div>
</div>
</div>
</div>
</div>
CSS
form.storyForm label{
padding: 0px 25px;
/* background-color: rgba(0,0,0,.15); */
color: #000;
border-radius: 4px 4px 0px 0px;
border: 1px solid rgba(0,0,0,.15);
border-bottom: 1px solid white !important;
top: 1px;
position: relative;
}
form.storyForm label.error{
padding: 0px 25px;
/* background-color: rgba(0,0,0,.15); */
color: #ef5350;
border-radius: 4px 4px 0px 0px;
border: 1px solid #ef5350;
border-bottom: 1px solid white !important;
top: 1px;
position: relative;
}
form.storyForm label.validate{
padding: 0px 25px;
/* background-color: rgba(0,0,0,.15); */
color: #26dad2;
border-radius: 4px 4px 0px 0px;
border: 1px solid #26dad2;
border-bottom: 1px solid white !important;
top: 1px;
position: relative;
}
我正在尝试添加/删除类的 javascript 代码
<script>
$(document).ready(function() {
$("#submit").click(function() {
if ($("#form-group").hasClass("error")) {
$("#label").addClass("error");
} else if ($("#form-group").hasClass("validate")) {
$("#label").removeClass("error");
$("#label").addClass("validate");
}
});
});
</script>
我还通过class 进行了检查,但它对我也不起作用
<script>
$(document).ready(function() {
$("#submit").click(function() {
if ($(".form-group").hasClass("error")) {
$(".control-label").addClass("error");
} else if ($("#form-group").hasClass("validate")) {
$(".control-label").removeClass("error");
$(".control-label").addClass("validate");
}
});
});
</script>
【问题讨论】:
-
你的 Id 不是唯一的,id
label和 idform-group是重复的 Id 应该是唯一的,因为它是标识符,如果你想对某些东西进行分类,请使用类 -
我也用过
Class和Tag -
首先你不应该在你的文档中使用相同的 id 两次,其次是你需要修复你的 jquery 选择器,第三,你的 js 函数会做你想做的事情的机会是非常低,因为至少没有对我们可见的函数,它是第一次向元素添加类
validate或error,所以 if 和 else if 语句将始终为假......
标签: javascript validation input label bootstrap-4