[英]Changing the form field background color with jquery
I have this small code and I am trying to change the background color of the field when I click on it to write, for example if I click in "email" field I want the field to turn yellow so it looks better.我有这个小代码,当我单击它进行写入时,我试图更改该字段的背景颜色,例如,如果我单击“电子邮件”字段,我希望该字段变为黄色,以便看起来更好。 I searched but I don't know I couldnt find a soultion becuase I am not really familar with jquery.
我搜索了但我不知道我找不到灵魂因为我对 jquery 不是很熟悉。
<div class="content">
<div class="row">
<div class="left">First name</div>
<div class="right"><input name="Text1" type="text" class="text" /></div>
<div class="clear"></div>
</div>
<div class="row">
<div class="left">Last name</div>
<div class="right"><input name="Text1" type="text" class="text" /></div>
<div class="clear"></div>
</div>
<div class="row">
<div class="left">Email</div>
<div class="right"><input name="Text1" type="text" class="text" /></div>
<div class="clear"></div>
</div>
<div class="row">
<div class="left">Password</div>
<div class="right"><input name="Text1" type="text" class="text" /></div>
<div class="clear"></div>
</div>
</div>
jquery jquery
$(document).ready(function()
{
$('.left, .content input, .content textarea, .content select').focus(function(){
$(this).parents('.row').addClass("over");
}).blur(function(){
$(this).parents('.row').removeClass("over");
});
});
css css
body{
font-family:Arial, Helvetica, sans-serif;
font-size: 13px;
}
.content{
padding:10px;
width:370px
}
.left{
width:150px;
float:left;
padding:7px 0px 0px 7px;
min-height:24px;
}
.right{
width:200px;
float:left;
padding:5px;
min-height:24px;
}
.clear{
float:none;
clear:both;
height:0px;
}
.row{
background-color:none;
display:block;
min-height:32px;
}
.text{
width:190px;
}
.ruler{
width:400px; border-bottom:dashed 1px #dcdcdc;
}
tr:focus{
background-color:#fcfcf0;
}
td{
vertical-align:top;
}
.over{
background-color:#f0f0f0;
}
.out{
background-color:none;
}
Whoever can help me with the solution, thanks a lot.谁能帮我解答一下,万分感谢。
You can get email type and add class based on that您可以获得 email 类型并在此基础上添加 class
JQuery JQuery
if( $(this).attr("type") == 'email' ){
$(this).parents('.row').addClass("email");
}
CSS CSS
.over.email{
background-color:#FFFF00;
}
$(document).ready(function(){ $('.left, .content input, .content textarea, .content select').focus(function(){ $(this).parents('.row').addClass("over"); if( $(this).attr("type") == 'email' ){ $(this).parents('.row').addClass("email"); } }).blur(function(){ $(this).parents('.row').removeClass("over"); if( $(this).attr("type") == 'email' ){ $(this).parents('.row').removeClass("email"); } }); });
body{ font-family:Arial, Helvetica, sans-serif; font-size: 13px; }.content{ padding:10px; width:370px }.left{ width:150px; float:left; padding:7px 0px 0px 7px; min-height:24px; }.right{ width:200px; float:left; padding:5px; min-height:24px; }.clear{ float:none; clear:both; height:0px; }.row{ background-color:none; display:block; min-height:32px; }.text{ width:190px; }.ruler{ width:400px; border-bottom:dashed 1px #dcdcdc; } tr:focus{ background-color:#fcfcf0; } td{ vertical-align:top; }.over{ background-color:#f0f0f0; }.over.email{ background-color:#FFFF00; }.out{ background-color:none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="content"> <div class="row"> <div class="left">First name</div> <div class="right"><input name="Text1" type="text" class="text" /></div> <div class="clear"></div> </div> <div class="row"> <div class="left">Last name</div> <div class="right"><input name="Text1" type="text" class="text" /></div> <div class="clear"></div> </div> <div class="row"> <div class="left">Email</div> <div class="right"><input name="Text1" type="email" class="text" /></div> <div class="clear"></div> </div> <div class="row"> <div class="left">Password</div> <div class="right"><input name="Text1" type="text" class="text" /></div> <div class="clear"></div> </div> </div>
You've done it right, just change the CSS rule, like this for instance:您做得对,只需更改 CSS 规则,例如:
.over{
background-color:#ffff00;
}
You can bind an event handler to the "focus" for only the email input, for example:您可以仅为 email 输入将事件处理程序绑定到“焦点”,例如:
$(document).ready(function () {
$('[name=email]').focus(function () {
$(this).parents('.row').addClass("over");
}).blur(function () {
$(this).parents('.row').removeClass("over");
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.