The solution here isn't obvious. Create another option like <option value="custom"> Enter a new company...</option>.
Add an onChange event to the SELECT tag. Pass the value to a javascript function.
In the JS function, unhide a hidden INPUT element. Prompt the user to enter the new thing.
Have a button that says something like "Add company". Get the user to click it.
With the button, have an onClick event. With that, grab the value in the INPUT element...
Use:
document.formName.selectName.options[document.formName.selec tName.selectedIndex].value
To access and replace 'custom'.
Hide the INPUT.
Tada.
Sorry I don't have more time to give you working code, but that will do it if you fiddle around and do it in small pieces.
The trick is that you never 'CHANGE' the select... you only unhide an INPUT, get what you want, then replace/add a new field in the SELECT. (There are a few extras that you'll need to do as well, but that should get you started.)
Cheers