сделать скрытое поле ввода "действительным" - PullRequest
0 голосов
/ 06 мая 2020

Почему скрытый ввод не считается «действительным» селектором 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 ]

2 голосов
/ 06 мая 2020

Согласно MDN :

Скрытые входные данные не участвуют в проверке ограничений; у них нет реального значения, которое можно было бы ограничить.

И, как таковые, не будут получать псевдоклассы valid или invalid. На ум приходит несколько вариантов: либо отфильтровать коллекцию, чтобы исключить hidden входные данные, либо использовать эту проверку в качестве обходного пути:

$("#b").is(":not(:invalid)");
1 голос
/ 06 мая 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...