Edit in JSFiddle

$.fn.dob = function( type ) {  

        return this.each(function() {

            var $this = $(this),
                strpad = function(number, length) {
                    var str = number.toString();
                    while (str.length < length) {
                        str = '0' + str;
                    }
                    return str;
                },

                wrapper = $('<div></div>'),
                day = $('<select></select>'),
                month = $('<select></select>'),
                year = $('<select></select>'),
                i=0,
                topts = '',
                months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                cYear = (new Date()).getFullYear(),
                s = '',
                initial = $this.val(),
                spl;
            
            if(initial.match(/[0-9]{4}-[0-9]{2}-[0-9]{2}/)) {
                spl = initial.split('-');

            } else if(initial.match(/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/)) {
                spl = initial.split('/').reverse();

            } else {
                spl = ["1985", "01", "01"];
            }

            topts = '';
            for(i=1; i<32; i+=1)
            {
                s = (i == parseInt(spl[2], 10)) ? ' selected="selected"' : '';
                topts += '<option value="'+strpad(i, 2)+'"'+s+'>'+i+'</option>';
            }
            day.html(topts);

            topts = '';
            for(i=1; i<13; i+=1)
            {
                s = (i == parseInt(spl[1], 10)) ? ' selected="selected"' : '';
                topts += '<option value="'+strpad(i, 2)+'"'+s+'>'+months[i-1]+'</option>';
            }
            month.html(topts);

            topts = '';
            for(i=cYear-100; i<=cYear; i+=1)
            {
                s = (i == parseInt(spl[0], 10)) ? ' selected="selected"' : '';
                topts += '<option value="'+i+'"'+s+'>'+i+'</option>';
            }
            year.html(topts);

            wrapper.append(day)
                .append(month)
                .append(year);

            $this.after(wrapper);

            // $this.css('display', 'none');

            wrapper.delegate('select', 'change', function() {
                var dVal = year.val()+'-'+month.val()+'-'+day.val();
                $this.val(dVal);
            });

            var dVal = year.val()+'-'+month.val()+'-'+day.val();
            $this.val(dVal);
        });
    };

$('.dob').dob();
<input type="text" class="dob" name="dob" value="1991-04-12" />