2015-10-18 94 views
0

我已经尝试了一些我已经看到的解决方案,而且它们中没有一个实际上正在更改我的文本框的背景颜色。这是两件事情我已经尝试
1)state.style.backgroundColor = "#FF0000"

2)state.style.backgroundColor = "red";

使用JavaScript更改文本框背景颜色使用JavaScript

这是我想使用

<script type="text/javascript"> 
function VerifyStateWasEntered() { 
    var state; 
    state = document.getElementByID("txtstate").value; 
    if (state == '') { 
     alert("Error Please Enter A Valid State"); 
     state.style.backgroundColor = "red"; 
     return false; 
    }}  



的功能与此是我用来创建文本框的HTML

<asp:TextBox id="txtstate" runat="server" /> 
+0

由于您使用asp控件,您可能会遇到.NET生成id的问题。在这种情况下,你会得到一个控制嵌套的组合(“MainContent_Login1_LoginPanel”说)。检查Page指令中的ClientIDMode设置,并将该值设置为“static”以避免这种情况。 – faester

回答

1

你能试试吗?将状态分配给值时,无法从值中获取样式对象。

<script type="text/javascript"> 
function VerifyStateWasEntered() { 
    var stateObj; 

    stateObj = document.getElementByID("txtstate"); 
    if (stateObj) { 
     var stateValue = stateObj.value; 

     if (stateValue == '') { 
     alert("Error Please Enter A Valid State"); 
     stateObj.style.backgroundColor = "red"; 
     return false; 
     }} 
    } 
</script> 

<asp:TextBox id="txtstate" runat="server" ClientIDMode="Static" /> 
+0

一旦我将语法改为'stateObj = document.getElementById(“txtstate”); - 它按需要工作。 – MustangLover

0

你正在尝试的是可能的,但我怀疑你使用了错误的ID(根据我的评论)。要设置元素的颜色,您可以使用下面的JavaScript。

document.getElementById("txtstate").style.background = "red" 

但是你需要确保你在页面上有ClientIdMode="static"

+0

我已经设置了ClientIDMode =“static”并尝试了您的语法,并且警报显示但文本框颜色不会更改。 – MustangLover

0

我知道您正在尝试使用Javascript制作背景颜色,但是您可以使用CSS来实现这一点,并且会更容易。

例子:

<asp:TextBox id="txtstate" runat="server" /> 
<style type="text/css"> 
#txtstate { 
background-color: /* the color you want */ ; 
} 

如果仍然不行,请尝试从<style type="text/css">删除收盘/。祝你好运!

相关问题