Вы не можете сделать options
в select
невидимым.Все, что вы можете сделать, это удалить их (что, как вы говорите, вы не хотите делать)
Это можно увидеть, запустив этот код:
<select multiple="multiple" size="4">
<option value="1">1</option>
<option value="2" style="display:none;">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
и отметив, что параметр помечен какdisplay:none;
все еще виден.
Скрипка