I *might* mildly disagree with Jolly.
If you are going to send your <form> fields to some server code for processing, and you want the server code to be able to read those "raw" dropdown (and text field, for year) values, then you need to give them name
s!! Fields without names are not sent on to the server.
In which case, instead of using document.getElementById("xxx").value
to get those form field values, you would be better off using document.formname.fieldname.value
HOWEVER... If you do *not* want the fields to be sent to the server--if you only want the "results" field to be sent to the server--then Jolly's answer is exactly correct: Only give the fields IDs (no names) and they won't be sent.
This also points out the fact that *NONE* of those field's in Jolly's <form> will be sent to the server. I would think that at a minimum he should have done
<form name="whatever" ...>
<input type="text" id="result" name="result" />
The lack of a <form> would also prevent the info from being sent to the server, of course.
And then I would argue that, in that case, Jolly should have used document.whatever.result.value
to put the result in place (just to make sure the "result" field *has* a name, so it will be sent to the server). I dislike giving fields both names and ids unless there is a pretty good reason. (Typically, the only reason is so that they can be the target of a <label for="someid">
... but of course creating fields that won't be sent to the server is another reason.)