当前位置: 首页 > 知识库问答 >
问题:

删除以前设置的边框颜色

隗俊誉
2023-03-14

null

function validate() {
	var username = document.getElementById("username").value;
	var password = document.getElementById("password").value;

	if (username == "") {

		document.getElementById("message").innerHTML = "USERNAME CANNOT BE EMPTY";
		document.getElementById("username").style.borderColor = "red";
		return false;
	}
	if (password == "") {


		document.getElementById("message").innerHTML = "PASSWORD CANNOT BE EMPTY";
		document.getElementById("password").style.borderColor = "red";
		return false;
	}
}
#username:focus {
	background-color: yellow;
	border-color: green;
}

#password:focus {
	background-color: yellow;
	border-color: green;
}

#message {
	color: red;
}
html prettyprint-override"><form onsubmit=" return validate()">
    LOGIN:-
    <br>
    <input id="username" type="text" name="username" placeholder="USERNAME">
    <br>
    <input id="password" type="password" name="password" placeholder="PASSWORD">
    <br>
    <input type="submit" value="SUBMIT">
    <p id="message">
</form>

null

  • 当我关注文本字段时,背景和边框颜色分别变为黄色和绿色(通过css)。
  • 如果单击submit而不输入任何内容,边框颜色将变为红色(通过javascript)。
  • 但当我再次将焦点放在文本字段时,红色边框颜色并没有消失,而是同时出现绿色和红色边框。

我只希望它是绿色的。你能不能也解释一下这种行为的原因。

共有1个答案

路欣荣
2023-03-14

之所以发生这种情况,是因为您更新了元素样式,而不是css类属性。元素样式对于css具有最高权重。相反,在错误时动态添加一个错误类,并在表单字段有效时删除它。

根据文档,样式的递减顺序将是。

  1. 内联样式(HTML元素内部)
  2. 外部和内部样式表(在标题部分)
  3. 浏览器默认值

下面是一个工作示例

null

function validate() {
    var username = document.getElementById("username").value;
    var password = document.getElementById("password").value;

    if (username == "") {
        document.getElementById("message").innerHTML = "USERNAME CANNOT BE EMPTY";
        document.getElementById("username").classList.add("invalidInput");
        return false;
    } else {
        document.getElementById("username").classList.remove("invalidInput")
    }
    if (password == "") {
        document.getElementById("message").innerHTML = "PASSWORD CANNOT BE EMPTY";
        document.getElementById("password").classList.add("invalidInput")
        return false;
    } else {
        document.getElementById("password").classList.remove("invalidInput")
    }
}
#username:focus {
    background-color: yellow;
    border-color: green;
}

#password:focus {
    background-color: yellow;
    border-color: green;
}

.invalidInput {
    border-color: red; 
}

#message {
    color: red;
}
<form onsubmit=" return validate()">
    LOGIN:-
    <br />
    <input id="username" type="text" name="username" placeholder="USERNAME" />
    <br />
    <input id="password" type="password" name="password" placeholder="PASSWORD" />
    <br />
    <input type="submit" value="SUBMIT" />
    <p id="message"></p>
</form>
 类似资料:
  • 当前结果:下边框为灰色 所需结果:所有边框均为白色 问题:CSS中的边框颜色设置为白色

  • 问题内容: 如何在Firefox中设置复选框样式,并取消选中标记和边框? CSS: HTML: 问题答案: input[type=”checkbox”] {

  • 问题内容: 我能够从中删除标题栏,但我不知道如何删除边框。 问题答案: 要删除边框,只需致电 根本没有显示任何边框。

  • 问题内容: 我有我的自定义单元格渲染器,想删除单元格的边框。 我该怎么做?我试过setBorder,但是不起作用。 这是我的渲染器代码: 问题答案: 单元格之间绘制的线不是单元格本身的一部分。它们是由桌子绘制的。您可以使用以下方法在整个表格中将其关闭: 要仅禁用水平或垂直线: 或者,您可以使用以下方法更改线条的颜色:

  • 我有一个表格,每个边框都设置为1px宽。我希望顶部、左侧和底部边框是黑色的,右侧边框是白色的。所以,我使用了这个css代码 问题出现在IE9中,其中右上角的像素为白色,而右下角的像素为黑色。 我怀疑问题来自IE9重组样式的方式,因为当我在开发工具控制台中查看我的表的css时,它是这样排序的: 这让我想,也许,用于定义颜色的顺序使其顶部边框为黑色,然后右侧边框为白色(覆盖右上角),然后底部边框为黑色

  • 我已将边框颜色设置为button border,但当我单击它时,button不显示该颜色。它正呈现出另一种颜色。我该怎么修好它? 我需要另一个帮助。我如何设置按钮背景像下面的图像?(其实不知道叫什么) 我设计的按钮: 我要设计的按钮: 还有为什么副标题不在一行?为什么要转到另一条新线路? null null