• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar

Creative CG

Web Design/Development Inspiration, Tips, Tutorials and Resources

  • About Us
  • Web Design Services

CreativeCG

Add/Remove options from a Select box with jQuery

January 14, 2011 by CreativeCG

Ever wanted to refresh your options in a drop down without having to refresh the screen? Here we will look at how to add and remove options from a select box using jQuery without refreshing the page.

Adding a single option via .append

A single option can be added by appending HTML to the select box. See example:

$('#optExample').append('<option value="newVal">Option Text</option>');

This added option will be the selected option; to change this remove the selected=”selected”.

Adding a single option via Javascript only

Add a single option using the newOption function. See example:

var options =  $('#optExample').attr('options');
options[options.length] = newOption('Option Text', 'newVal', true, true);

The true, true properties select the option upon creation. Remove them if you do not want the option selected when added.

Adding multiple options

Use the following to replace an existing set of options with a new set. The array could be created anyway you wish, however since we want the page to keep from refreshing either populate the list upon page load or via AJAX. We’ll use the following:

var dataArr = [{'value':'val1','text':'text1'},
               {'value':'val2','text':'text2'},
               {'value':'val3','text':'text3'},
               {'value':'val4','text':'text4'},
               {'value':'val5','text':'text5'},
               {'value':'val6','text':'text6'},
               {'value':'val7','text':'text7'}];

// Removes all options for the select box
$('#optExample option').remove();

// .each loops through the array
$.each(dataArr, function(i){
    $('#optExample').append($("<option></option>")
                    .attr("value",dataArr[i]['value'])
                    .text(dataArr[i]['text']));
});

Adding multiple options by criteria

If you want to take an array of data and populate the select box only when the criteria is met the code is similar in nature. See example:

var dataArr = [{'key':'1','value':'val1','text':'text1'},
               {'key':'1','value':'val2','text':'text2'},
               {'key':'2','value':'val3','text':'text3'},
               {'key':'2','value':'val4','text':'text4'},
               {'key':'2','value':'val5','text':'text5'},
               {'key':'3','value':'val6','text':'text6'},
               {'key':'3','value':'val7','text':'text7'}];
// Removes all options for the select box
$('#optExample option').remove();

// .each loops through the array
$.each(dataArr, function(i){
    //only append options with a "key" value of 2
    if (dataArr[i]['key'] == '2'){
        $('#optExample').append($("<option></option>")
                        .attr("value",dataArr[i]['value'])
                        .text(dataArr[i]['text']));
    }
});

A common use for something like this is where an option list is populated when another form option is selected. Based upon your page design rather than execute an AJAX call you could populate the entire array with all the options on page load. This would increase initial page weight but reduce I/O later on.

There are possibly more jQuery plugins that complete similar functionality but this is all possible with native jQuery.

Filed Under: Featured, Javascript, jQuery Tagged With: javascript, jquery

Professional Web Design

July 8, 2010 by CreativeCG

Web Design or Re-design?

We understand the needs of small business, and can offer crucial support to large companies. Whether your looking to freshen up your existing web presence or start from scratch we are prepared to support your company. Our professional staff will do what it takes to execute your needs within your budget. We’ll provide exceptional server to ensure you get what you want.

We’ll take care of it.

Oh No… Not another template!?!

How can you make your company standout when your information is jammed into a template that already resides on many other websites? We work with you to custom design your website to me the specifications required by your branding, tastes, etc.  If you have an exact design in mind we will create it, if not then we will create one with you.

Your website will appear professional and elegant, never homemade. Your website is an extension of your marketing department. If it doesn’t portray your business as professional you could lose potential clients.  Because of this we will make sure there is no use of templates, clip art and low quality artwork.  We employ nothing but high quality design elements that instill trust, and credibility to your business.

Listening to Our Clients

Clients know what they want. We hear you and will follow your wishes.

  • No templates, please. I don’t want my website looking like …
  • I want it done right the first time. I want all the functionality to operate correctly for everyone.
  • My clients are disabled. I want my website to be completely accessible.
  • Search engine placement is important. I need a site that search engines will push to the top of the results.

Filed Under: General

  • « Previous Page
  • Page 1
  • Page 2

Primary Sidebar

Facebook Twitter Google+ Pin It Share GitHub RSS

Affiliates

Web Hosting 125x125 125x125 Thesis Theme for WordPress:  Options Galore and a Helpful Support Community Genesis Theme Framework for WordPress by StudioPress Dynamik Website Builder The easiest way to create a photography website. Create your site at Weebly.com!

Categories

  • Blogging
  • Featured
  • Freebies
  • Game Dev
  • General
  • Javascript
  • jQuery
  • Web Design
  • Wordpress
  • Wordpress Themes

Copyright © 2021 · Metro Pro on Genesis Framework · WordPress · Log in