[SalesForce] Pass parameter from html select tag to controller

I want to pass parameter that selected from html select tag to my controller (assign it to string "city")
what should i do to achieve this ?

–Visualforce–

<select> 
      <option value="" selected="selected" disabled="disabled">City</option> 
      <option value="City A">City A</option> 
      <option value="City B">City B</option> 
      <option value="City C">City C</option> 
</select>

–Apex Class–

public String city{get;set;}

Best Answer

Use <apex:selectlist> and <apex:selectOption>

Use selected/disabled attribute of <apex:selectOption>

<apex:selectlist value="{!city}" size="1"> 
      <apex:selectOption itemlabel="City" itemValue=""/>
      <apex:selectOption itemlabel="City A" itemValue="City A"/>
      <apex:selectOption itemlabel="City B" itemValue="City B"/>
      <apex:selectOption itemlabel="City C" itemValue="City C"/>
</apex:selectlist>

Or

Use <apex:inputHidden>

<apex:inputHidden value="{!city}" id="cityId"/> 

<select onchange="document.getElementById('{!$Component.cityId}').value = this.value;"> 
      <option value="" selected="selected" disabled="disabled">City</option> 
      <option value="City A">City A</option> 
      <option value="City B">City B</option> 
      <option value="City C">City C</option> 
</select>