使用 Javascript 为焦点上的文本框设置 class
Set a class for a textbox on focus using Javascript
我有以下 HTML Bootstrap 代码
<div class="form-group">
<label class="col-sm-2 control-label labelfont">FIRST NAME:</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="Enter the First Name" id="FirstName" onkeypress="return onlyAlphabets(event);">
</div>
<label class="col-sm-4 labelfont errorMsg" id="Err_FirstName">Enter the first name</label>
</div>
我在Tabout上的JS代码如下
$("#FirstName").blur(function () {
if ($(this).val().trim().length == 0)
{
$(this).addClass('borderclass');
$("#Err_FirstName").show();
}
else {
$("#Err_FirstName").hide();
$(this).removeClass('borderclass');
}
});
'borderclass'如图
.borderclass
{
border:1px solid red;
}
以上代码在 Tab out 上运行良好。
但是在将焦点移回控件以输入值时,我再也看不到红色边框了。
我认为 bootstrap 为每个控件设置了自己的 css 当焦点返回到 control.In 时设置以解决此问题,我尝试了以下方法,没用
$("#FirstName").focusin(function () {
if($("#Err_FirstName").visible)
$(this).addClass('borderclass');
});
在正确方向上的任何帮助都会 appreciated.Thanks 很多。
jQuery 对象中没有 visible
属性.. 但是 $.fn.is
可以满足您的需求。也就是说,您可以使用伪选择器 :visible
作为 is
方法中的参数,其中 returns 是一个布尔值。
$("#FirstName").focusin(function () {
if($("#Err_FirstName").is(":visible"))
$(this).addClass('borderclass');
}
样式已被 bootstrap 覆盖,您可以添加此
.borderclass:focus {
border: 1px solid red;
box-shadow: 0px 0px 2px 0px red;
outline: 0;
}
我有以下 HTML Bootstrap 代码
<div class="form-group">
<label class="col-sm-2 control-label labelfont">FIRST NAME:</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="Enter the First Name" id="FirstName" onkeypress="return onlyAlphabets(event);">
</div>
<label class="col-sm-4 labelfont errorMsg" id="Err_FirstName">Enter the first name</label>
</div>
我在Tabout上的JS代码如下
$("#FirstName").blur(function () {
if ($(this).val().trim().length == 0)
{
$(this).addClass('borderclass');
$("#Err_FirstName").show();
}
else {
$("#Err_FirstName").hide();
$(this).removeClass('borderclass');
}
});
'borderclass'如图
.borderclass
{
border:1px solid red;
}
以上代码在 Tab out 上运行良好。
我认为 bootstrap 为每个控件设置了自己的 css 当焦点返回到 control.In 时设置以解决此问题,我尝试了以下方法,没用
$("#FirstName").focusin(function () {
if($("#Err_FirstName").visible)
$(this).addClass('borderclass');
});
在正确方向上的任何帮助都会 appreciated.Thanks 很多。
jQuery 对象中没有 visible
属性.. 但是 $.fn.is
可以满足您的需求。也就是说,您可以使用伪选择器 :visible
作为 is
方法中的参数,其中 returns 是一个布尔值。
$("#FirstName").focusin(function () {
if($("#Err_FirstName").is(":visible"))
$(this).addClass('borderclass');
}
样式已被 bootstrap 覆盖,您可以添加此
.borderclass:focus {
border: 1px solid red;
box-shadow: 0px 0px 2px 0px red;
outline: 0;
}