将隐藏的输入字段设置为“有效”

时间:2020-05-06 11:46:33

标签: javascript jquery validation

为什么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">

2 个答案:

答案 0 :(得分:2)

根据MDN

隐藏的输入不参与约束验证;他们没有 实际价值受到限制。

因此不会收到任何validinvalid伪类。我想到了两种选择,要么过滤集合以排除hidden输入,要么将此检查用作解决方法:

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

答案 1 :(得分:1)

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将display属性更改为none