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.
 
    