Firstly, a checkbox (<input type="check" .../>) is more natural than a select when the options are yes/no.
I'm going to assume their was a small stroke in progress as you typed this (because I know for a fact that you're not an idiot).
For those who don't know better: a radio button set is what you'd actually want under these circumstances.
HTML:
<input type="radio" name="fieldName" value="Yes" id="fieldName_Yes" /><label for="fieldName_Yes">Yes</label>
<input type="radio" name="fieldName" value="No" id="fieldName_No" /><label for="fieldName_No">No</label>
Why? By convention, a radio button set must
always have exactly one choice selected from the list. A checkbox set, on the other hand, will always allow zero or more items to be selected. Although you can enforce an "at least x choices" or a "not more than x choices" policy during validation of a checkbox, there's never a guarantee that anything is selected, or that mutually-exclusive selections cannot be made at any point in time. Mutually-exclusive selections from a small list of choices (say a half-dozen at maximum) should almost always be represented by a radio button set.
As for when the onchange event fires, it depends on the widget. Radios, checkboxes and selects fire an onchange immediately when they change value. Text and textareas won't do that -- it would be silly to fire an onchange with every keystroke while a user is typing away madly -- the onchnge event fires when the user is finished with the field, and that is indicated by moving focus out of the field (onchange normally fires immediately before onblur).