I have the below 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>
I would like to get the no of non-empty input boxes.
This is what i tried
$('#container input[type="text"][value!=""]').length
or
$('#container input[type="text"]').filter('input[value!=""]').length
even when i input some values it is always showing as zero . what is wrong with these selectors i tried and why it is not working?
You can pass in a filter function rather than a selector:
$('#container input[type="text"]').filter(function () {
return !!this.value;
}).length;
The attribute value will always be the default value so you must filter through the input boxes and check the value like this code below
$('#container input[type="text"]').filter(function () {
return this.value.length > 0
}).length;
DEMO
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With