Dragon Ranch – Your virtual dragon pet

Dragon Ranch is a virtual pet game currently in development. A web based game designed to allow you to raise a dragon of your own from an egg to full maturity. Dragon Ranch offers the ability to maintain a stable of dragon raising their abilities through questing and training, building your horde of loot and breeding them to aim for a the perfect combination of skills. Check back during August 2011 to potentially gain access to Alpha testing and assist in make Dragon Ranch a fun place to raise your pet.

Garage Games returns to it’s Indie roots

Garage Games is back!  With the recent demise of InstantAction.com  Garage Games sat in an uncertain position. They were picked up by some nameless folks and restored to glory.  Garage Games aim is to restore their place in the Indie game development scene.  To celebrate their newly restored vigor they have put their engines (Torque 3D, Torque 2D and ITorque 2D) at a tremendously low price point.  $99 each!! These engines have what it takes to produce professional grade games.  This is an limited time offer that should not be missed.

Add/Remove options from a Select box with jQuery

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.