将隐藏输入字段视为'valid'



为什么jquery选择器不认为隐藏输入是"有效的",我该怎么办(即使其有效(。

console.log($("#a").is(":valid")); // true
console.log($("#b").is(":valid")); // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="a" type="text" value="abc">
<input id="b" type="hidden" value="def">

根据MDN:

隐藏的输入不参与约束验证;他们没有要约束的实际值。

因此将不会接收到任何validinvalid伪类。脑海中浮现出几个选项,要么过滤集合以排除hidden输入,要么使用此检查作为解决方法:

$("#b").is(":not(:invalid)");

console.log($("#a").is(":valid")); // true
console.log($("#b").is(":valid")); // false
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="a" type="text" value="abc">
<input id="b" type="text" style="display:none" value="def">

将类型从隐藏更改为文本,然后使用CSS将显示属性更改为无

相关内容

  • 没有找到相关文章

最新更新