CSS不适用于IE - 边框样式更改

时间:2014-09-02 03:58:41

标签: javascript css

我有一个验证码,如果输入文本为空白或onblur,我想将边框颜色更改为输入文本的RED。

在FF和Chrome中,它运行正常。 在IE10中,它不起作用。

这是我的剧本

function onblur_style() {
var x = document.forms["myform"]["MySearchKeywordInput"].value;
    if (x != "" || x != null) {
        document.getElementById("MySearchBox").style="border: 2px solid #5A5A5A;color: red";
    } 
}

function validateForm() {
var y = document.forms["myform"]["MySearchKeywordInput"].value;
    if (y==null || y=="") {        
        alert("At least one search query is required.");
        document.getElementById("MySearchBox").style="border: 2px solid #FF0000;color: red";
        return false;
    } else {
        document.forms["myform"].submit();
    }
}

这是我的HTML

<form id="myform" method="get" action="http://submitpage.page" onsubmit="return validateForm()">
<table>
<tr>
<td>
<input type="text" id="MySearchBox" name="MySearchKeywordInput" maxlength="60" size="180" value="Search for solutions" onfocus="if (this.value==this.defaultValue)this.value='';" onblur="onblur_style()">
</td>
<td>
<input type="image" src="http://image/magnifying_glass.gif">
</td>
</tr>
</table>

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

正如我的评论所述,您似乎将style 属性style 属性混淆。

如果您想使用该属性,请尝试这样的事情......

var searchBoxStyle = document.getElementById("MySearchBox").style;
searchBoxStyle.border = '2px solid #5A5A5A';
searchBoxStyle.color = 'red';

答案 1 :(得分:1)

DOM元素的style属性是一个包含不同样式属性值的对象。因此,如果要通过样式属性更改元素的边框和颜色,则需要执行以下操作:

element.style.border = "2px solid #5A5A5A";
element.style.color = "#FF3030";

如果要更改元素的样式属性,就像在示例中一样,您需要这样做:

element.setAttribute("style", "border: 2px solid #5A5A5A; color: red");