我有以下HTML DOM
<div id="container>
<p data-bind="visible:ShowPostCode()">
<label class="field-label" for="postcode">Postcode</label>
<input id="txtPostCode" data-bind="value:PostCode, valueUpdate: "afterkeydown"" class="field-stretch" type="text">
</p>
<p data-bind="visible:ShowDateOfBirth()">
<label class="field-label" for="dateofbirth">Date of birth</label>
<input data-bind="value:DateOfBirth, valueUpdate: "afterkeydown"" class="field-stretch" type="text">
</p>
<p style="display: none;" data-bind="visible:ShowtelephoneNumber()">
<label class="field-label" for="telephoneNumber">Telephone number</label>
<input data-bind="value:DrivingLicenceNumber, valueUpdate: "afterkeydown"" class="field-stretch" type="text">
</p>
</div>
我想获得非空输入框的数量。
这是我试过的
$('#container input[type="text"][value!=""]').length
或
$('#container input[type="text"]').filter('input[value!=""]').length
即使我输入了一些值,它也始终显示为零。我试过的这些选择器有什么问题,为什么它不起作用?
答案 0 :(得分:25)
您可以传入过滤器功能而不是选择器:
$('#container input[type="text"]').filter(function () {
return !!this.value;
}).length;
答案 1 :(得分:10)
属性值始终是默认值,因此您必须过滤输入框并检查值,如下面的代码所示
$('#container input[type="text"]').filter(function () {
return this.value.length > 0
}).length;