HTML form readonly SELECT tag/input

JavascriptHtml

Javascript Problem Overview


According to HTML specs, the select tag in HTML doesn't have a readonly attribute, only a disabled attribute. So if you want to keep the user from changing the dropdown, you have to use disabled.

The only problem is that disabled HTML form inputs don't get included in the POST / GET data.

What's the best way to emulate the readonly attribute for a select tag, and still get the POST data?

Javascript Solutions


Solution 1 - Javascript

You should keep the select element disabled but also add another hidden input with the same name and value.

If you reenable your SELECT, you should copy its value to the hidden input in an onchange event and disable (or remove) the hidden input.

Here is a demo:

$('#mainform').submit(function() {
    $('#formdata_container').show();
    $('#formdata').html($(this).serialize());
    return false;
});

$('#enableselect').click(function() {
    $('#mainform input[name=animal]')
        .attr("disabled", true);
    
    $('#animal-select')
        .attr('disabled', false)
    	.attr('name', 'animal');
    
    $('#enableselect').hide();
    return false;
});

#formdata_container {
    padding: 10px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <form id="mainform">
        <select id="animal-select" disabled="true">
            <option value="cat" selected>Cat</option>
            <option value="dog">Dog</option>
            <option value="hamster">Hamster</option>
        </select>
        <input type="hidden" name="animal" value="cat"/>
        <button id="enableselect">Enable</button>
        
        <select name="color">
            <option value="blue" selected>Blue</option>
            <option value="green">Green</option>
            <option value="red">Red</option>
        </select>

        <input type="submit"/>
    </form>
</div>

<div id="formdata_container" style="display:none">
    <div>Submitted data:</div>
    <div id="formdata">
    </div>
</div>

Solution 2 - Javascript

We could also disable all except the selected option.

This way the dropdown still works (and submits its value) but the user can not select another value.

Demo

<select>
    <option disabled>1</option>
    <option selected>2</option>
    <option disabled>3</option>
</select>

Solution 3 - Javascript

You can re-enable the select object on submit.

EDIT: i.e., normally disabling the select tag (with the disabled attribute) and then re-enabling it automatically just before submiting the form:

Example with jQuery:

  • To disable it:

      $('#yourSelect').prop('disabled', true);
    
  • To re-enable it before submission so that GET / POST data is included:

      $('#yourForm').on('submit', function() {
          $('#yourSelect').prop('disabled', false);
      });
    

In addition, you could re-enable every disabled input or select:

$('#yourForm').on('submit', function() {
    $('input, select').prop('disabled', false);
});

Solution 4 - Javascript

another way of doing a readOnly attribute to a select element is by using css

you could do like :

$('#selection').css('pointer-events','none');

DEMO

Solution 5 - Javascript

Simple jQuery solution

Use this if your selects have the readonly class

jQuery('select.readonly option:not(:selected)').attr('disabled',true);

Or this if your selects have the readonly="readonly" attribute

$('select[readonly="readonly"] option:not(:selected)').attr('disabled',true);

Solution 6 - Javascript

<select id="countries" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">
<option value="1">Country1</option>
<option value="2">Country2</option>
<option value="3">Country3</option>
<option value="4">Country4</option>
<option value="5">Country5</option>
<option value="6">Country6</option>
<option value="7" selected="selected">Country7</option>
<option value="8">Country8</option>
<option value="9">Country9</option>
</select>

Tested and working in IE 6, 7 & 8b2, Firefox 2 & 3, Opera 9.62, Safari 3.2.1 for Windows and Google Chrome.

Solution 7 - Javascript

I know that it is far too late, but it can be done with simple CSS:

select[readonly] option, select[readonly] optgroup {
    display: none;
}

The style hides all the options and the groups when the select is in readonly state, so the user can not change his selection.

No JavaScript hacks are needed.

Solution 8 - Javascript

Simple CSS solution:

select[readonly]{
    background: #eee;
    cursor:no-drop;
}
    
select[readonly] option{
    display:none;
}

This results in Select to be gray with nice "disable" cursor on hover
and on select the list of options is "empty" so you can not change its value.

Solution 9 - Javascript

Yet another more contemporary option (no pun intended) is to disable all the options of the select element other then the selected one.

note however that this is an HTML 4.0 feature and ie 6,7,8 beta 1 seem to not respect this.

http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/OptionDisabledSupport.html

Solution 10 - Javascript

This is the best solution I have found:

$("#YourSELECTIdHere option:not(:selected)").prop("disabled", true);

The code above disables all other options not selected while keeping the selected option enabled. Doing so the selected option will make it into the post-back data.

Solution 11 - Javascript

Easier still: add the style attribute to your select tag:

style="pointer-events: none;"

Solution 12 - Javascript

A bit late to the party. But this seems to work flawlessly for me

select[readonly] {
	pointer-events:none;
}

Solution 13 - Javascript

In addition to disabling the options that should not be selectable i wanted to actually make them dissapear from the list, but still be able to enable them should i need to later:

$("select[readonly]").find("option:not(:selected)").hide().attr("disabled",true);

This finds all select elements with a readonly attribute, then finds all options inside those selects that are not selected, then it hides them and disables them.

It is important to separate the jquery query in 2 for performance reasons, because jquery reads them from right to left, the code:

$("select[readonly] option:not(:selected)")

will first find all unselected options in the document and then filter those that are inside selects with a readonly attribute.

Solution 14 - Javascript

This is the simplest and best solution. You will set a readolny attr on your select, or anyother attr like data-readonly, and do the following

$("select[readonly]").live("focus mousedown mouseup click",function(e){
	e.preventDefault();
	e.stopPropagation();
});

Solution 15 - Javascript

Set the select disabled when you plan for it to be read-only and then remove the disabled attribute just before submitting the form.

// global variable to store original event/handler for save button
var form_save_button_func = null;

// function to get jQuery object for save button
function get_form_button_by_id(button_id) {
    return jQuery("input[type=button]#"+button_id);
}

// alter value of disabled element
function set_disabled_elem_value(elem_id, value)  {
    jQuery("#"+elem_id).removeAttr("disabled");
    jQuery("#"+elem_id).val(value);
    jQuery("#"+elem_id).attr('disabled','disabled');
}

function set_form_bottom_button_save_custom_code_generic(msg) {
    // save original event/handler that was either declared
    // through javascript or html onclick attribute
    // in a global variable
    form_save_button_func = get_form_button_by_id('BtnSave').prop('onclick'); // jQuery 1.6
    //form_save_button_func = get_form_button_by_id('BtnSave').prop('onclick'); // jQuery 1.7

    // unbind original event/handler (can use any of following statements below)
    get_form_button_by_value('BtnSave').unbind('click');
    get_form_button_by_value('BtnSave').removeAttr('onclick');

    // alternate save code which also calls original event/handler stored in global variable
    get_form_button_by_value('BtnSave').click(function(event){
        event.preventDefault();
        var confirm_result = confirm(msg);
        if (confirm_result) {
            if (jQuery("form.anyForm").find('input[type=text], textarea, select').filter(".disabled-form-elem").length > 0) {
                jQuery("form.anyForm").find('input[type=text], textarea, select').filter(".disabled-form-elem").removeAttr("disabled");
            }

            // disallow further editing of fields once save operation is underway
            // by making them readonly
            // you can also disallow form editing by showing a large transparent
            // div over form such as loading animation with "Saving" message text
            jQuery("form.anyForm").find('input[type=text], textarea, select').attr('ReadOnly','True');

            // now execute original event/handler
            form_save_button_func();
        }
    });
}

$(document).ready(function() {
    // if you want to define save button code in javascript then define it now

    // code below for record update
    set_form_bottom_button_save_custom_code_generic("Do you really want to update this record?");
    // code below for new record
    //set_form_bottom_button_save_custom_code_generic("Do you really want to create this new record?");

    // start disabling elements on form load by also adding a class to identify disabled elements
    jQuery("input[type=text]#phone").addClass('disabled-form-elem').attr('disabled','disabled');
    jQuery("input[type=text]#fax").addClass('disabled-form-elem').attr('disabled','disabled');
    jQuery("select#country").addClass('disabled-form-elem').attr('disabled','disabled');
    jQuery("textarea#address").addClass('disabled-form-elem').attr('disabled','disabled');

    set_disabled_elem_value('phone', '123121231');
    set_disabled_elem_value('fax', '123123123');
    set_disabled_elem_value('country', 'Pakistan');
    set_disabled_elem_value('address', 'address');

}); // end of $(document).ready function

Solution 16 - Javascript

If you disable a form field, this won't be sent when form is submitted. So if you need a readonly that works like disabled but sending values do this :

After any change in readonly properties of an element.

$('select.readonly option:not(:selected)').attr('disabled',true);

$('select:not([readonly]) option').removeAttr('disabled');

Solution 17 - Javascript

Solution with tabindex. Works with select but also text inputs.

Simply use a .disabled class.

CSS:

.disabled {
    pointer-events:none; /* No cursor */
    background-color: #eee; /* Gray background */
}

JS:

$(".disabled").attr("tabindex", "-1");

HTML:

<select class="disabled">
    <option value="0">0</option>
</select>

<input type="text" class="disabled" />

Edit: With Internet Explorer, you also need this JS:

$(document).on("mousedown", ".disabled", function (e) {
    e.preventDefault();
});

Solution 18 - Javascript

One simple server-side approach is to remove all the options except the one that you want to be selected. Thus, in Zend Framework 1.12, if $element is a Zend_Form_Element_Select:

 $value =  $element->getValue();
 $options = $element->getAttrib('options');
 $sole_option = array($value => $options[$value]);
 $element->setAttrib('options', $sole_option);

Solution 19 - Javascript

Following on from Grant Wagners suggestion; here is a jQuery snippet that does it with handler functions instead of direct onXXX attributes:

var readonlySelect = function(selector, makeReadonly) {

	$(selector).filter("select").each(function(i){
		var select = $(this);
		
		//remove any existing readonly handler
		if(this.readonlyFn) select.unbind("change", this.readonlyFn);
		if(this.readonlyIndex) this.readonlyIndex = null;
		
		if(makeReadonly) {
			this.readonlyIndex = this.selectedIndex;
			this.readonlyFn = function(){
				this.selectedIndex = this.readonlyIndex;
			};
			select.bind("change", this.readonlyFn);
		}
	});

};

Solution 20 - Javascript

I resolved it with jquery:

	  $("select.myselect").bind("focus", function(){
		if($(this).hasClass('readonly'))
		{
		  $(this).blur();	
		  return;
		}
      });

Solution 21 - Javascript

If you are using jquery validate, you can do the following below, I used the disabled attribute without a problem:

$(function(){
	$('#myform').validate({
		submitHandler:function(form){
			$('select').removeAttr('disabled');
			form.submit();
		}
	});
});

Solution 22 - Javascript

What I found works great, with plain javascript (ie: no JQuery library required), is to change the innerHTML of the <select> tag to the desired single remaining value.

Before:

<select name='day' id='day'>
  <option>SUN</option>
  <option>MON</option>
  <option>TUE</option>
  <option>WED</option>
  <option>THU</option>
  <option>FRI</option>
  <option>SAT</option>
</select>

Sample Javascript:

document.getElementById('day').innerHTML = '<option>FRI</option>';

After:

<select name='day' id='day'>
  <option>FRI</option>
</select>

This way, no visiual effect change, and this will POST/GET within the <FORM>.

Solution 23 - Javascript

input being your <select> element:

input.querySelectorAll(':not([selected])').forEach(option => {
  option.disabled = true
})

This will keep the select in the data (as it's not disabled) and only the option that are not selected are disabled, therefore not selectable. The result is a readable select that cannot be changed (=> read only).

Solution 24 - Javascript

Rather than the select itself, you could disable all of the options except for the currently selected option. This gives the appearance of a working drop-down, but only the option you want passed in is a valid selection.

Solution 25 - Javascript

html solution: ><select onfocus="this.blur();">

javascript ones: >selectElement.addEventListener("focus", selectElement.blur, true); >selectElement.attachEvent("focus", selectElement.blur); //thanks, IE

to remove: >selectElement.removeEventListener("focus", selectElement.blur, true); >selectElement.detachEvent("focus", selectElement.blur); //thanks, IE

edit: added remove methods

Solution 26 - Javascript

In IE I was able to defeat the onfocus=>onblur approach by double-clicking. But remembering the value and then restoring it in the onchange event seems to handle that issue.

<select onfocus="this.oldvalue=this.value;this.blur();" onchange="this.value=this.oldvalue;">
....
</select>

You can do similar without expando properties by using a javascript variable.

Solution 27 - Javascript

Simply, remove the disabled attribute before submit the form.

    $('form').submit(function () {
        $("#Id_Unidade").attr("disabled", false);
    });

Solution 28 - Javascript

<select id="case_reason" name="case_reason" disabled="disabled">

disabled="disabled" ->will get your value from database dan show it in the form. readonly="readonly" ->you can change your value in selectbox, but your value couldn't save in your database.

Solution 29 - Javascript

> What's the best way to emulate the readonly attribute for a select > tag, and still get the POST data?

Just make it an input/text field and add the 'readonly' attribute to it. If the select is effectively 'disabled', then you can't change the value anyway, so you don't need the select tag, and you can simply display the "selected" value as a readonly text input. For most UI purposes I think this should suffice.

Solution 30 - Javascript

If the select dropdown is read-only since birth and does not need to change at all, perhaps you should use another control instead? Like a simple <div> (plus hidden form field) or an <input type="text">?

Added: If the dropdown is not read-only all the time and JavaScript is used to enable/disable it, then this is still a solution - just modify the DOM on-the-fly.

Solution 31 - Javascript

Below worked for me :

$('select[name=country]').attr("disabled", "disabled"); 

Solution 32 - Javascript

I managed it by hiding the select box and showing a span in its place with only informational value. On the event of disabling the .readonly class, we need also to remove the .toVanish elements and show the .toShow ones.

 $( '.readonly' ).live( 'focus', function(e) {
				$( this ).attr( 'readonly', 'readonly' )
				if( $( this ).get(0).tagName == 'SELECT' ) {
					$( this ).before( '<span class="toVanish readonly" style="border:1px solid; padding:5px">' 
							+ $( this ).find( 'option:selected' ).html() + '</span>' )
					$( this ).addClass( 'toShow' )
					$( this ).hide()
			}
	});

Solution 33 - Javascript

Here's an attempt to use a custom jQuery function to achieve the functionality (as mentioned here):

$(function(){

 $.prototype.toggleDisable = function(flag) {
    // prepare some values
    var selectId = $(this).attr('id');
    var hiddenId = selectId + 'hidden';
    if (flag) {
      // disable the select - however this will not submit the value of the select
      // a new hidden form element will be created below to compensate for the 
      // non-submitted select value 
      $(this).attr('disabled', true);

      // gather attributes
      var selectVal = $(this).val();
      var selectName = $(this).attr('name');

      // creates a hidden form element to submit the value of the disabled select
      $(this).parents('form').append($('<input></input>').
        attr('type', 'hidden').
        attr('id', hiddenId).
        attr('name', selectName).
        val(selectVal) );
    } else {
      // remove the newly-created hidden form element
      $(this).parents('form').remove(hiddenId);
      // enable back the element
      $(this).removeAttr('disabled');
    }
  }

  // Usage
  // $('#some_select_element').toggleDisable(true);
  // $('#some_select_element').toggleDisable(false);

});

Solution 34 - Javascript

var selectedOpt;//initialize var
var newIdForHidden;//initialize var
$('.disabledOnEdit').focusin(function(){
selectedOpt = $(this).find(":selected").val();
newIdForHidden = $(this).attr('id')+'Hidden';
//alert(selectedOpt+','+newIdForHidden);
$(this).append('');
$(this).find('input.hiddenSelectedOpt').attr('id',newIdForHidden).val(selectedOpt);
});
$('.disabledOnEdit').focusout(function(){
var oldSelectedValue=$(this).find('input.hiddenSelectedOpt').val();
$(this).val(oldSelectedValue);
});

Solution 35 - Javascript

select multiple does not respond nearly as well to the above code suggestions. With MUCH sledgehammering and kludging, I ended up with this:

var thisId="";
var thisVal="";
function selectAll(){
    $("#"+thisId+" option").each(function(){
        if(!$(this).prop("disabled"))$(this).prop("selected",true);
    });
    $("#"+thisId).prop("disabled",false);
}
$(document).ready(function(){
    $("select option:not(:selected)").attr('disabled',true);
    $("select[multiple]").focus(function(){
        thisId=$(this).prop("id");
        thisVal=$(this).val();
        $(this).prop("disabled",true).blur();
        setTimeout("selectAll();",200);
    });
});

Solution 36 - Javascript

very simple. First store

I have a

Solution 37 - Javascript

If you have a select tag that should be readonly you have to, logically, transform the select box in a single "text" field.

I say logically because it's like: "I have to display a value to user"

No matter if the value comes from a select tag, is still a single value and cannot be changed (readonly).

So, logically, you use a select tag only when you first insert the value.

Then, when you need to display this value, you have to put it on a "text field-readonly".

Same for a multiple-select that becomes a list of values (the selected value) if readonly

I use "text" because a readonly-tag doesn't need a "type" attribute. Cheers

Solution 38 - Javascript

I know this won't help everyone (if you are client side only) but will help some who are full stack and have control of backend as well as front.

If a user does not have priviledge to edit a field, I only return the current selection for the drop down.

Here is some of my backend controller:

        #region Prepare Action Priviledges
        editAuditVM.ExtAuditEditRoleMatrixVM = new ExtAuditEditRoleMatrixVM
        {
            CanEditAcn = _extAuditEditRoleMatrixHelper.CanEditAcn(user, audit),
            CanEditSensitiveDesignation = _extAuditEditRoleMatrixHelper.CanEditSensitiveDesignation(user, audit),
            CanEditTitle = _extAuditEditRoleMatrixHelper.CanEditTitle(),
            CanEditAuditScope = _extAuditEditRoleMatrixHelper.CanEditAuditScope(user, audit)
        };
        #endregion


        #region Prepare SelectLists for Drop Downs
        #region AuditScope List
        IQueryable<SelectListItem> auditScopes = _auditTypesRepo.AuditTypes
            .Where(at => at.AuditTypeClassCode.ToLower() == "e")
            .Select(at => new SelectListItem
            { Text = at.AuditTypeText, Value = at.AuditTypeID.ToString() });
        // Cannot make a select readonly on client side.
        //  So only return currently selected option.
        if (!editAuditVM.ExtAuditEditRoleMatrixVM.CanEditAuditScope)
        {
            auditScopes = auditScopes
                .Where(ascopeId => ascopeId.Value == editAuditVM.ExternalAudit.AuditTypeID.ToString());
        }
        #endregion
        #endregion

Solution 39 - Javascript

So for whatever reason all jquery based solutions mentioned here did not work for me. So here is a pure javascript solution which should also preserve the selected value when doing a POST.

setDropdownReadOnly('yourIdGoesHere',true/false)

> > function setDropdownReadOnly(controlName, state) { > var ddl = document.getElementById(controlName); > > for (i = 0; i < ddl.length; i++) { > if (i == ddl.selectedIndex) > ddl[i].disabled = false; > else > ddl[i].disabled = state; > } > }

Solution 40 - Javascript

My solution is to add select[readonly] { pointer-events: none; } style as many people here suggested, and then add this JS to handle keyboard events:

$(document).on('keydown', 'select[readonly]', function(e) {
	if (e.keyCode != 9) {
		if (e.preventDefault) {
			e.preventDefault();
		}

		e.returnValue = false;
		e.cancel = true;
	}
});

This still allows traversing through the element with tab.

Solution 41 - Javascript

Extract from https://stackoverflow.com/a/71086058/18183749

> If you can't use the 'disabled' attribut (as it erases the value's > input at POST), and noticed that html attribut 'readonly' works only > on textarea and some input(text, password, search, as far I've seen), > and finally, if you don't want to bother with duplicating all your > select, checkbox and radio with hidden input logics, you might find > the following function or any of his inner logics to your liking :

addReadOnlyToFormElements = function (idElement) {
    
        // html readonly don't work on input of type checkbox and radio, neither on select. So, a safe trick is to disable the non-selected items
        $('#' + idElement + ' select>option:not([selected])').prop('disabled',true);
    
        // and, on the selected ones, to mimic readOnly appearance
        $('#' + idElement + ' select').css('background-color','#eee');
    }

And there's nothing easier than to remove these readonly

removeReadOnlyFromFormElements = function (idElement) {

    // Remove the disabled attribut on non-selected 
    $('#' + idElement + ' select>option:not([selected])').prop('disabled',false);

    // Remove readOnly appearance on selected ones
    $('#' + idElement + ' select').css('background-color','');
}

Solution 42 - Javascript

This might be similar in a way with other solutions but is simplified to fewer lines.

Assuming there would be a jquery function that disables the target option...

$("select[id='country']").val('PH').attr("disabled", true);
$("select[id='country']").parent().append("<input type='hidden' id='country' value='PH'>");

And incase you want to re-enable the option...

$("select[id='country']").attr("disabled", false);
$("input[id='country']").remove();

Solution 43 - Javascript

This javascript find all 'select' with 'readonly' atribute, and then put disabled in the 'options' except the selected (for postback)

document.querySelectorAll("select[readonly] > option:not([selected])").forEach( (el) => el.setAttribute("disabled", "disabled") );

without readonly: <select>
  <option>1</option>
  <option selected>2</option>
  <option>3</option>
</select>

<br>
with readonly: <select readonly="readonly">
  <option>1</option>
  <option selected>2</option>
  <option>3</option>
</select>

Solution 44 - Javascript

Since the OP specifically asked that he does not want to disable the select element, here is what i use to make a select readonly

In html

<select id="selectId" name="selectName" class="form-control-sm"  style="pointer-events: none;" onclick="return false;" onkeydown="return false;" ></select>

Or if you want to do it via javascript

let isReadOnly = true ;

selectElement.onclick = function () {
    return !isReadOnly ;
};
selectElement.onkeydown =function(){
    return !isReadOnly ;
} ;
selectElement.style.pointerEvents = isReadOnly ? "none" : "all" ;

Explanation

  • setting pointer-events to none disables the editing of the "select-element" with mouse/cursor events
  • setting the onclick & onkeydown functions to return false disables the editing of the "select-element" with keyboard

This way you don't have to create any extra element, or disable/re-enable the element with javascript or messing with form-submission logic, or use any third party library.

Plus you can easily add css-styling like setting backgrouns-color to grey or text color to grey to imply that element is readonly. I haven't added that to code, since that is pretty specific to your site-theme

Solution 45 - Javascript

In an option you can use disabled="disabled", instead of on the select itself

Solution 46 - Javascript

Had same problem and found very useful property of form - submitdisabledcontrols.

Set that to True and disabled inputs are now POST.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJrgnsView Question on Stackoverflow
Solution 1 - JavascriptbezmaxView Answer on Stackoverflow
Solution 2 - Javascriptvimal1083View Answer on Stackoverflow
Solution 3 - Javascriptkemiller2002View Answer on Stackoverflow
Solution 4 - JavascriptYajeView Answer on Stackoverflow
Solution 5 - JavascriptBlack Brick SoftwareView Answer on Stackoverflow
Solution 6 - JavascriptGrant WagnerView Answer on Stackoverflow
Solution 7 - JavascriptnrofisView Answer on Stackoverflow
Solution 8 - Javascriptd.raevView Answer on Stackoverflow
Solution 9 - JavascriptepelegView Answer on Stackoverflow
Solution 10 - JavascriptLeniel MaccaferriView Answer on Stackoverflow
Solution 11 - Javascriptmainak chakrabortyView Answer on Stackoverflow
Solution 12 - JavascriptJoost00719View Answer on Stackoverflow
Solution 13 - JavascriptcernunnosView Answer on Stackoverflow
Solution 14 - JavascriptGuilherme FerreiraView Answer on Stackoverflow
Solution 15 - JavascriptCraig AmbroseView Answer on Stackoverflow
Solution 16 - JavascriptJoaquim PerezView Answer on Stackoverflow
Solution 17 - JavascriptjBelangerView Answer on Stackoverflow
Solution 18 - JavascriptDavidView Answer on Stackoverflow
Solution 19 - JavascriptthetoolmanView Answer on Stackoverflow
Solution 20 - JavascriptownkingView Answer on Stackoverflow
Solution 21 - JavascriptRafael MoniView Answer on Stackoverflow
Solution 22 - JavascriptSydView Answer on Stackoverflow
Solution 23 - JavascriptvinyllView Answer on Stackoverflow
Solution 24 - JavascriptAdam BellaireView Answer on Stackoverflow
Solution 25 - JavascriptKadmillosView Answer on Stackoverflow
Solution 26 - JavascriptSojourneerView Answer on Stackoverflow
Solution 27 - JavascriptWendell CarvalhoView Answer on Stackoverflow
Solution 28 - JavascriptAfwan ZikriView Answer on Stackoverflow
Solution 29 - JavascriptPeterGView Answer on Stackoverflow
Solution 30 - JavascriptVilx-View Answer on Stackoverflow
Solution 31 - JavascriptjohnView Answer on Stackoverflow
Solution 32 - JavascriptfiatjafView Answer on Stackoverflow
Solution 33 - JavascripttamersalamaView Answer on Stackoverflow
Solution 34 - JavascriptRobinView Answer on Stackoverflow
Solution 35 - JavascriptgordonView Answer on Stackoverflow
Solution 36 - Javascriptramesh shindeView Answer on Stackoverflow
Solution 37 - JavascriptMindexperimentView Answer on Stackoverflow
Solution 38 - JavascriptSamView Answer on Stackoverflow
Solution 39 - JavascriptAlex BegunView Answer on Stackoverflow
Solution 40 - JavascriptR.P. PedrazaView Answer on Stackoverflow
Solution 41 - Javascriptvincent salomonView Answer on Stackoverflow
Solution 42 - JavascriptJacobskiView Answer on Stackoverflow
Solution 43 - JavascriptWagner PereiraView Answer on Stackoverflow
Solution 44 - JavascriptNick AsherView Answer on Stackoverflow
Solution 45 - JavascriptunplugandplayView Answer on Stackoverflow
Solution 46 - JavascriptgbearView Answer on Stackoverflow