我有这样的HTML。
input:valid {
border-bottom: 1px solid green;
}
.customInput {
border: 0px;
border-bottom: 1px solid red;
width: 105px;
outline: none;
}

<div id="personalInfo" class="info active">
<div class="elementContainers">
<span class="labelText ">First Name</span>
<span class="spacing"></span>
<input type="text" class="customInput" id="firstName" name="firstName" pattern="[A-Za-z]{2,}" required/>
</div>
<div class="elementContainers">
<span class="labelText">Last Name</span>
<span class="spacing"></span>
<input type="text" class="customInput" id="lastName" name="lastName" pattern="[A-Za-z]{1,}" required/>
</div>
<div class="elementContainers">
<span class="labelText ">Gender</span>
<span class="spacing"></span>
<input type="radio" name="gender" value="M">Male
<span class="spacing"></span>
<input type="radio" name="gender" value="F">Female
</div>
<div class="elementContainers">
<span class="labelText"> Date of Birth</span>
<span class="spacing"></span>
<input type="text" class="customInput datepicker" name="actualDOB" required pattern=".{6,}" />
</div>
</div>
&#13;
我使用HTML5模式属性来验证字段。 我可以单独检查相应字段是否有效。
像这样:$('#firstName:valid').length
如果有效,它将返回1,除非是。
我需要检查div#personalInfo
是否有效。
除了循环遍历所有元素并检查外,我该怎么检查呢?
答案 0 :(得分:2)
当前使用CSS,如果没有一些javascript魔法,就无法将CSS发送到父对象。
对不起: - (
CSS只允许您更改单个节点的子元素(或兄弟元素)。
如果你做想要使用jquery来检查子元素的有效性,你可以这样做:
$('#personalInfo :valid').length; // gives you the size of the valid input objects
查询#personalInfo
的所有子元素是有效的。
答案 1 :(得分:1)
HTML5有built-in method checkValidity()
,用于检查form
元素并返回其约束验证是正还是负。大多数主要供应商都采用此方法的browser support,以便在适当时使用。