通常会立即计算:INVALID Select 器:元素的样式将立即设置为:INVALID.例如,如果页面加载后立即需要一个值:

input:invalid {
  border: 10px solid red;
}
<form>
<p> Go red only after I focused and blurred away </p>
  <input required placeholder="you must type something" />
</form>

是否可以解决此问题,以便仅在用户与表单交互后才进行判断?(通常,在第一次聚焦/模糊之后). 我知道这是标准的浏览器实现行为,所以我们可能正在寻找一种解决方法.

虽然我不想做JS验证,但Minimal JS是可以的.

推荐答案

当然可以.与过早设置required属性不同,您可以使用某些东西(在本例中为required class)标记项目,并对要触发添加required属性(在本例中为blur)的事件进行编程:

function myBlur() {
    this.setAttribute("required", null);
}

function myFocus() {
    this.removeAttribute("required");
}

for (let item of document.getElementsByClassName("required")) {
    item.addEventListener("blur", myBlur);
    item.addEventListener("focus", myFocus);
}
input:invalid {
  border: 10px solid red;
}
<form>
  <input class="required" placeholder="you must type something" />
</form>

在上面的示例中,我在blur上添加了required属性,并在focus上删除了它,这样,如果用户在项目被聚焦时删除内容,它就不会对他们大喊大叫,而是在项目失go 焦点时发出抱怨,而不是没有值.

Html相关问答推荐

XPATH text()函数遇到困难

试图让三个Divs与下面的另外三个对齐

CSS:显示块,第一个项目没有正确对齐

如何使用bslb设置可导航页面侧边栏的样式

Tailwincss:自动设置网格高度

为什么在CSS中字段是一个有效的 colored颜色 名称?

Div中的图像问题-(TailWind CSS中的网格)

如何使不断增长的div不溢出其包含固定div的父级

如何将文本环绕心形(而不仅仅是圆形)?

带下划线的文本应该有延长的下划线,以使其图像悬停

如何使VS代码支持以模仿嵌套的方式对已经包含注释的HTML进行注释?

HTML,CSS-阻止按钮在单击时向上移动

如何防止滑动滚动元素时touch 屏出现空白区域?

使用简单的 HTML 设计公司徽标和文本

使用修饰键微调 HTML 输入范围中的值

对齐页面左侧的单选按钮

输入框不是全宽

水平对齐两列中的两个按钮 同一级别

提交前的验证表单未显示任何验证消息?

所有幻灯片上的 Quarto RevealJS 标题