[SalesForce] How to pass values of html select within a apex:repeat to wrapper list

I am using HTML select tag within a pageblocktable in my VF page to display a wrapperclass list.
How can i pass the selected values into the wrapper class in the controller?

AND

How can preselect the options of the select with values from my wrapper class?

I know it would be easier for me to use the Apex:selectList but i wanted to use Select2 jquery plugin to get a nice look and feel.

 <apex:pageblockTable value="{!selectedProducts}" var="s" id="QLIPBT">
 <apex:column headerValue="Targeting" style="width:120px;">
                       <!-- <apex:inputField value="{!s.quotelineitemRec.Targetting__c}" style="width:100px" required="true" /> -->
                       <apex:inputHidden value="{!s.selectedTargetGroup}" />
                        <select multiple="multiple" name="Target" style ="width:120px;"  onchange ="document.getElementById('{!$Component.hiddenTarget}').value = this.value; checkSelected();">
                            <apex:repeat value="{!s.TargetingOptions}" var="stage">
                               <option value="{!stage.value}">{!stage.label}</option> 
                            </apex:repeat>
                        </select>
                    </apex:column>

</apex:pageblockTable>

Controller wrapperclass

 public class selectedProductWrapper
     {

        public List<SelectOption> TargetingOptions {get; private set;}
        public quoteLineItem quotelineitemRec {get; private set;}
        public Id Pricebook2EntryId  {get; private set;}
        public String TargetGroup  {get; private set;}
        public String selectedTargetGroup  {get; set;}
        public string selTargeting  {get; set;}

        public selectedProductWrapper( quoteLineItem quotelineitemRec_v,String TargetGroup_v)
        {
            this.quotelineitemRec = quotelineitemRec_v;
            this.Pricebook2EntryId = quotelineitemRec.PriceBookEntryId;
            this.TargetGroup = TargetGroup_v;
            TargetingOptions = new  List<SelectOption>();
            for(Group_Members__c gm : [SELECT name FROM Group_Members__c WHERE Product_Target_Group__c =:TargetGroup])
            {
                this.TargetingOptions.add(new Selectoption(gm.name,gm.name));

            }
            this.selectedTargetGroup = quotelineitemRec.Targetting__c;
            system.debug('selected Options ' + TargetingOptions);
        }
     }

Best Answer

You can use:

<option value="{!stage.value}"
        {! IF(stage.value == selTargeting, 'selected', '') }
        >{!stage.label}</option>

i.e. make use of the HTML option selected attribute assuming you set selTargeting to the value you want selected in the wrapper class.