How might one go about getting all controls visible to the user?
<div id=dataform>
<div>
Name
<input type=text id=name class=entry>
</div>
<div>
City
<input type=text id=city class=entry style="display:none;">
</div>
<div style="display:none;">
<label for=nocontact>nocontact</label>
<input type=checkbox id=nocontact class=entry>
</div>
<div>
<table>
<tr>
<td>
<label for=phone>Phone</label>
</td>
<td>
<input type=text id=phone class=entry>
</td>
</tr>
</table>
</div>
<div>
<select id="keys">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</div>
</div>
Neither "city" nor "nocontact" are visible to the user.
document.getElementById("dataform").querySelectorAll("dataform > entry ???? ");
Or some other method to get all controls, inputs, that are visible (not just inputs, but selects, textarea, etc). Could add a class to each, as shown and grab all, but how to determine or get just those that are visible to the user. The nocontact checkbox wouldn't be, so ignore it. I put the table in there to demonstrate that the control is not always a direct child of the div in which it resides.
I'm afraid that cycling through them all and tagging them with a class or a data attribute is the only way and that pretty much sucks. FYI: not using jquery or other framework on this.