jQuery Ddl Operations

by Annie Lagang

HTML

<select id="ExternalAccount_PaymentMethodCodeClone_VI" 
        name="DropDownListPaymentMethodCode">
<option value="ExternalAccount:VI-93459">My Visa (XX0605)</option>
<option value="ExternalAccount:TP-93462">My UATP (XX1867)</option>
<option value="ExternalAccount:MC-93460">My MasterCard (XX1001)</option>
<option value="ExternalAccount:TP-93463">My UATP (XX2593)</option>
<option value="ExternalAccount:VI-93464">My Visa (XX0605)</option>
<option value="ExternalAccount:VI">Visa</option>
<option value="ExternalAccount:MC">MasterCard</option>
<option value="ExternalAccount:TP">UATP</option>
<option value="ExternalAccount:BD">Payment Center - UAE - Al Rais Travel - Dubai</option>
</select>

<!--<select id="ExternalAccount_PaymentMethodCodeClone_VI" 
        name="DropDownListPaymentMethodCode">
<option value="VI-93459">My Visa (XX0605)</option>
<option value="TP-93462">My UATP (XX1867)</option>
<option value="MC-93460">My MasterCard (XX1001)</option>
<option value="TP-93463">My UATP (XX2593)</option>
<option value="VI-93464">My Visa (XX0605)</option>
<option value="VI">Visa</option>
<option value="MC">MasterCard</option>
<option value="TP">UATP</option>
<option value="BD">Payment Center - UAE - Al Rais Travel - Dubai</option>
</select>-->

JavaScript

$(function(){
    var data = {
        'foo': 'bar',
        'foo2': 'baz'
    }
    
    // doesn;t start with VI
    /*removeAllOptionsExcept("ExternalAccount_PaymentMethodCodeClone_VI", /^(?!VI)/, true, true, ':', 1);*/
    // doesn't contain VI or MC
    removeAllOptionsExcept("ExternalAccount_PaymentMethodCodeClone_VI", /^((?!VI|MC).)*$/, true);     
});

/**** REMOVE OPTION BASED ON VALUE ****/
function removeBasedOnValue(id, value) {
    $("#" + id + " > option[value='" + value + "']").remove();
}
 
/**** REMOVE OPTION BASED ON OPTION INDEX ****/
function removeBasedOnIndex(id, value) {
    $("#" + id + " > option:eq(" + value + ")").remove();
}
 
/**** REMOVE OPTION CONTAINING SPECIFIC VALUE ****/
function removeBasedOnContainValue(id, value) {
    $("#" + id + " > option:contains('" + value + "')").remove();
}
 
/**** REMOVE SELECTED INDEX ****/
function removeSelectedIndex(id) {
    $("#" + id + " > option:selected").remove();
}
 
/**** REMOVE ALL OPTIONS ****/
function removeAllOptions(id) {
    $("#" + id + " > option").remove();
}

// SOURCE: http://www.overpie.com/jquery/articles/jquery-remove-dropdownlist-or-combobox-options

/**** ADD OPTION ****/
function addOption(id, value, text, appendBefore) {
    var ddl = $('#'+ id);
    if(appendBefore) {
       $("<option>", { value: value, text: text }).prependTo(ddl);
    }
    else {
      $("<option>", { value: value, text: text }).appendTo(ddl);
    }
}

/**** ADD MULTIPLE OPTIONS ****/
function addOptions(id, data, appendBefore) {
    var ddl = $('#'+ id);
    if(appendBefore) {
       for(var val in data) {
          $('<option>', {value: val, text: data[val]}).prependTo(ddl);
      }
    }
    else {
      for(var val in data) {
          $('<option>', {value: val, text: data[val]}).appendTo(ddl);
      }
    }
}

/**** REMOVE ALL OPTIONS EXCEPT ****/
function removeAllOptionsExcept(id, pattern, getValue, isSplit, splitChar, splitPos) {
    $("#" + id + " > option").filter(function() {
        var...