jQuery val() and checkboxes <p>Is there some rationale for <code>val()</code> being useless for checkbox controls, whereas it is useful for getting input data consistently across every other input control?</p> <p>e.g. for checkboxes, at appears to <em>always return "on" regardless of the checkbox state.</em> For other input controls that don't actually have a "value" attribute, e.g. select and textarea, it behaves as you would expect. See:</p> <p><a href="http://jsfiddle.net/jamietre/sdF2h/4/">http://jsfiddle.net/jamietre/sdF2h/4/</a></p> <p>I can't think of a good reason why it wouldn't return <code>true</code> or <code>false</code>. Failing that, at least return "on" only when checked, and an empty string when not. Failing that, at least always return an empty string, given that checkboxes have no <code>value</code> attribute!</p> <p>Obviously I know how to get the value using <code>attr</code>, but here's the situation. I am developing a simple (so far anyway) C# jQuery implementation to do HTML parsing on the server, and I am trying to be completely faithful to jQuery's implementation so it behaves consistently on either the client or server against the same DOM. But this just seems stupid and I'm having a hard time getting myself to actually code "value" to return "ON" for a checkbox no matter what. But if I don't, it won't be consistent. So I'm trying to understand, is there some reason for doing this? Does it serve some purpose, or is it simply an artifact of some kind? Would anyone ever use the <code>val()</code> method against a checkbox, if so, why? If not, why did the jQuery architects decide on this approach to make it not useful?</p>