我试图使“提交”按钮仅在人们在三个输入框中以相同的顺序写数字0 4 2时可用。
我知道使用JS可以轻松实现,但是我想知道是否也可以仅使用HTML。
<form action="#">
<input class="code" type="text" required="required">
<input class="code" type="text" required="required">
<input class="code" type="text" required="required"> <br>
<input type="submit" value="Unlock" />
</form>
答案 0 :(得分:3)
虽然可行,但这是一个愚蠢的CSS技巧,没有太大的灵活性,实际上不应该在生产中使用。
input[type=submit] {
pointer-events: none;
color: red;
}
input:valid + input:valid + input:valid + br + input[type=submit] {
pointer-events: auto;
color: green;
}
<form action="#">
<input class="code" type="text" required="required" pattern="0">
<input class="code" type="text" required="required" pattern="4">
<input class="code" type="text" required="required" pattern="2"><br>
<input type="submit" value="Unlock" />
</form>
:valid
pseudo-class匹配经过验证的输入,+
匹配相邻的兄弟姐妹。 pointer-events: none;
阻止点击。
pattern
属性设置一个正则表达式来验证字段。