当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
How to change focus color when input is filled in with required attribute javascript/html/css
我正在处理HTML表单。我已将必需元素添加到我的一些输入字段中。因为我使用的是 Bootstrap,所以输入字段在聚焦时默认为蓝色。我已将所需的输入字段设置为带有input:required:focus {border: 1px solid red;}
的红色。现在,当填写必填字段时,我想将输入字段边框更改为绿色。我的问题,CSS可以吗以及如何?如果没有,我如何使用Javascript或其他东西来实现这一点?
input:required:focus {
border: 1px solid red;
outline: none;
}
textarea:required:focus {
border: 1px solid red;
outline: none;
}
.form-horizontal {
padding-left: 15px;
padding-right: 15px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<form class="form-horizontal">
<div class="form-group">
<label class="col-md-2 control-label" for="Name">
Full name <span class="required">*</span>
</label>
<div class="col-md-10">
<input id="Name" name="Name" placeholder="Full name" class="form-control input-md" required="" type="text">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="John Doe">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="email">
E-mail <span class="required">*</span>
</label>
<div class="col-md-10">
<input id="email" name="email" placeholder="E-mail" class="form-control input-md" required="" type="email">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="johndoe@gmail.com">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="phone">
Phone number
</label>
<div class="col-md-10">
<input id="phone" name="phone" placeholder="Phone number" class="form-control input-md" type="text">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="Only numbers">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="question">
Question <span class="required">*</span>
</label>
<div class="col-md-10">
<textarea rows="20" cols="40" class="form-control" id="question" required="" name="question"></textarea>
</div>
</div>
<div class="col-md-10 col-md-offset-2">
<button type="submit" class="btn btn-default formbuttonalign">Send mail!</button>
</div>
</form>
所以我发现HTML5包含一个valid
和invalid
选择器。
input:required:focus {
border: 1px solid red;
outline: none;
}
textarea:required:focus {
border: 1px solid red;
outline: none;
}
input:focus:valid {
border: 1px solid green;
outline: none;
}
input:focus:invalid {
border: 1px solid red;
outline: none;
}
input:valid {
border: 1px solid green;
}
您可以将其与required
选择器结合使用,以检查其是否有效,因此是否填写了AND 是否正确,例如电话号码仅包含数字。有趣的是,它唯一的HTML5和CSS3:)
您希望它何时变为绿色?您立即开始键入,还是当输入字段失去焦点时?让我假设您希望在失去焦点时发生这种情况。另一个问题是:当它失去焦点时,它应该保持绿色吗?我假设它会,因为我的第一个假设是,只有当它失去焦点时,它才会变成绿色。如果我的任何假设是错误的,请纠正我
Javascript:
$(function(){
$('input:required,textarea:required').on('blur', function(){
if($(this).val()!==''){ //assuming the form doesn't have some fields populated by default.
$(this).addClass('green-border');
} else {
$(this).removeClass('green-border');
}
});
});
.green-border {
border: 1px solid green !important;
}
input:required:focus {
border: 1px solid red;
outline: none;
}
textarea:required:focus {
border: 1px solid red;
outline: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
<form class="form-horizontal">
<div class="form-group">
<label class="col-md-2 control-label" for="Name">Full name <span class="required">*</span></label>
<div class="col-md-10">
<input id="Name" name="Name" placeholder="Full name" class="form-control input-md" required="" type="text">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="John Doe">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="email">E-mail <span class="required">*</span></label>
<div class="col-md-10">
<input id="email" name="email" placeholder="E-mail" class="form-control input-md" required="" type="email">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="johndoe@gmail.com">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="phone">Phone number</label>
<div class="col-md-10">
<input id="phone" name="phone" placeholder="Phone number" class="form-control input-md" type="text">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="Only numbers">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="question">Question <span class="required">*</span></label>
<div class="col-md-10">
<textarea rows="20" cols="40" class="form-control" id="question" required="" name="question"></textarea>
</div>
</div>
<div class="col-md-10 col-md-offset-2">
<button type="submit" class="btn btn-default formbuttonalign">Send mail!</button>
</div>
</form>
在必填字段上使用 oninput 事件,然后验证其是否填充。
oninput="if(this.value != ''){ this.style.borderColor='green'; } else{ this.style.borderColor='red'; }"
input:required:focus {
border: 1px solid red;
outline: none;
}
textarea:required:focus {
border: 1px solid red;
outline: none;
}
<form class="form-horizontal">
<div class="form-group">
<label class="col-md-2 control-label" for="Name">Full name <span class="required">*</span></label>
<div class="col-md-10">
<input id="Name" name="Name" placeholder="Full name" class="form-control input-md" required="" type="text" oninput="if(this.value != ''){ this.style.borderColor='green'; } else{ this.style.borderColor='red'; }">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="John Doe">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="email">E-mail <span class="required">*</span></label>
<div class="col-md-10">
<input id="email" name="email" placeholder="E-mail" class="form-control input-md" required="" type="email" oninput="if(this.value != ''){ this.style.borderColor='green'; } else{ this.style.borderColor='red'; }">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="johndoe@gmail.com">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="phone">Phone number</label>
<div class="col-md-10">
<input id="phone" name="phone" placeholder="Phone number" class="form-control input-md" type="text">
<span class="format-block"><a data-toggle="tooltip" data-placement="right" title="Only numbers">Format</a></span>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="question">Question <span class="required">*</span></label>
<div class="col-md-10">
<textarea rows="20" cols="40" class="form-control" id="question" required="" name="question" oninput="if(this.value != ''){ this.style.borderColor='green'; } else{ this.style.borderColor='red'; }"></textarea>
</div>
</div>
<div class="col-md-10 col-md-offset-2">
<button type="submit" class="btn btn-default formbuttonalign">Send mail!</button>
</div>
</form>
相关文章:
- CSS/HTML:更改文本的值并在悬停时从中心展开
- CSS Html使图像显示在单选按钮的选项上(单选按钮被CSS隐藏)
- 重叠的选项卡 JS CSS HTML.
- CSS HTML gallery 对键盘做出反应
- node.js可以选择性地引入到用普通PHP/js/CSS/HTML构建的web应用程序中吗
- 如何将(CSS/HTML)的包链接在一起.CSS/HTML->CSS/HTML->CSS/HTML
- Css/HTML positioning
- 我该如何实现CSS/HTML中使用密码字段的非常简单的文本框提示
- 在 js/css/html 更改 Web 应用程序上强制刷新缓存
- 停用“;element.style”;在css/html中
- 图像 /JS /css/html 从 Weblogic 9 迁移到 Weblogic 10.3.6 后不会在 chrom
- 六边形,在CSS HTML JavaScript中单击时更改图片
- 应该很简单:当转到另一个页面时,如何在基本javascript/css/html页面上保留数据
- Tumblr JS嵌入CSS/HTML标签进行样式设置
- 根据代码中存在的单词/URL 显示 CSS/HTML
- 我决定不支持IE7;我现在可以使用哪些 JS/CSS/HTML 功能
- Javascript/CSS/HTML 鼠标悬停显示没有可点击链接的远程页面
- 将CSS/HTML双字体颜色转换为SELECT OPTION
- JS/CSS/HTML中的动态布局
- 在JavaScript中获取CSS/HTML命名颜色的RGB值