如何在单击时更改文本框的背景颜色

时间:2013-09-20 06:41:54

标签: javascript css

我是java脚本的新手,所以我有一个疑问。我创建了一个包含用户名和密码的表单,我需要知道如何在点击时更改文本框的背景颜色?它会有所帮助。 我的代码:

 <script type="text/javascript">    
 function AllowLock(){
               if (!locker.lock.value.match(/[a-zA-Z]$/) && locker.lock.value !="")
               {
                    locker.lock.value="";                     
                    alert("Please Enter only valid lock");
               }
               if(locker.lock.value.length > 5)
               alert("max length exceeded");               
             } 
function AllowKey(){
               if (!locker.keys.value.match(/[a-zA-Z]$/) && !locker.keys.value.match(/[0-9]+$/))
               {
                    locker.keys.value="";                   
                    alert("Please Enter only valid key");
               }
               if(locker.keys.value.length > 5)
               alert("max length exceeded");               
             }           

function LockName(){
 {
 if(locker.lock.value.length==0)
document.getElementById('errfn').innerHTML="this is invalid name";
} 

{
 if(locker.keys.value.length==0)
 document.getElementById('error').innerHTML="this is invalid key";
 }
 }
 </script>  

7 个答案:

答案 0 :(得分:3)

将此添加到按钮的onclick功能。

document.getElementById('error').style.backgroundColor="#some hex value"; 

答案 1 :(得分:3)

如果要在输入聚焦时更改background-color(插入符号位于input内且用户正在与之交互,则不需要JavaScript,您可以使用CSS:

input:focus {
    background-color: #ffa;
}

JS Fiddle demo

但是,使用JavaScript:

var el = document.getElementById('inputElementID');
el.style.backgroundColor = '#ffa';

答案 2 :(得分:1)

而不是点击,使用焦点会更好。

使用jquery。

Jquery看起来与javascript不同,但它是用javascript构建的。只需在google CDN中加入jquery即可。或者下载它,只需将其包含在您的文件中即可。

$( "#divName" ).focus(function() { //give the div a name, and wrap the div around the text box
  $(this).css( "background", "red" );
});
编辑:哦,是的!这家伙是对的!完全有一个伪类。 (一个处理它的CSS技巧)

答案 3 :(得分:1)

<强> CSS

不需要JavaScript,只需添加此样式 -

如果您分配了一些id,则使用ID error -

/* if your text box id is error */
#error:focus{
  background-color: #ff0000;/* red some color*/
}

否则你总是可以使用其他css选择器,例如通过标记名

/* for input tags */
input:focus{
  background-color: #ff0000;/* red some color*/
}

或按课程

/* for `some-class` */
.some-class:focus{
  background-color: #ff0000;/* red some color*/
}

<强>的JavaScript

如果您想使用JavaScript,那么 -

/* assuming your input element has id - `error` */
var el = document.getElementById("error");

/* add a click listener to it */
el.onclick = function() {
   el.style.backgroundColor = "#ff0000";
}

注意

使用css方式比JavaScript好,因为它干净,element-selector:focus会在input外点击时自动设置以前的背景色。

答案 4 :(得分:1)

如果您只想更改输入框中的背景颜色,则不需要任何JavaScript 只需使用CSS:focus伪类。

input:focus{
    background: #ffff00;
}

查看此页面以了解有关CSS伪类的更多信息 - http://www.tutorialrepublic.com/css-tutorial/css-pseudo-classes.php

答案 5 :(得分:1)

我认为是这样的:

 <script>
    window.onload="myFunction(
        var textbox = document.getElementById('elementID');
        textbox.onclick = changeColor;
        function changeColor() {
            textbox.style.backgroundColor = "#000000";
            return false;
        }
    )";
 </script>

答案 6 :(得分:1)

尝试使用jQuery。它更容易

$('#lock').click({
      var input = $('#input').val();
      var regex = '/[a-zA-Z]$/';  

      if(input != ''
      && !input.match(regex))
      {
          input.val('');                     
          alert("Please Enter only valid lock");                        
      }

      if(input.length > 5)
      {
           alert("max length exceeded");   
      }  

      //Here is the CSS part. You can change it of the button or the input field
      $('#input').css('background-color', 'red');
});

以下是随附的示例HTML。此外,可以应用于某些输入的maxlength属性可能会使您的“超出最大长度”功能变得不必要。

<input id="input" value="" type="text" maxlength="5" />
<button id="lock">Lock</button>