How Can I Move Selected Option In Multiselect Up And Down By Buttons Using Jquery? July 21, 2022 Post a Comment I have select 1 2 3< Solution 1: Update: Fixed code for multiple options selected, based on @patrick dw's suggestion. $(document).ready(function(){ $('input[type="button"]').click(function(){ var $op = $('#select2 option:selected'), $this = $(this); if($op.length){ ($this.val() == 'Up') ? $op.first().prev().before($op) : $op.last().next().after($op); } }); }); Copy Test it here » No need to use inline onclick="" event listeners. jQuery takes full control of separating presentation from functionality. Solution 2: if you do not use jquery function moveUp(){ var select = document.getElementById("columnOrder"); var options = select && select.options; var selected = []; for (var i = 0, iLen = options.length; i < iLen; i++) { if (options[i].selected) { selected.push(options[i]); } } for (i = 0, iLen = selected.length; i < iLen; i++) { var index = selected[i].index; if(index == 0){ break; } var temp = selected[i].text; selected[i].text = options[index - 1].text; options[index - 1].text = temp; temp = selected[i].value; selected[i].value = options[index - 1].value; options[index - 1].value = temp; selected[i].selected = false; options[index - 1].selected = true; } } function moveDown(){ var select = document.getElementById("columnOrder"); var options = select && select.options; var selected = []; for (var i = 0, iLen = options.length; i < iLen; i++) { if (options[i].selected) { selected.push(options[i]); } } for (i = selected.length - 1, iLen = 0; i >= iLen; i--) { var index = selected[i].index; if(index == (options.length - 1)){ break; } var temp = selected[i].text; selected[i].text = options[index + 1].text; options[index + 1].text = temp; temp = selected[i].value; selected[i].value = options[index + 1].value; options[index + 1].value = temp; selected[i].selected = false; options[index + 1].selected = true; } } Copy Solution 3: function up() { var selected = $("#select2").find(":selected"); var before = selected.prev(); if (before.length > 0) selected.detach().insertBefore(before); } function down() { var selected = $("#select2").find(":selected"); var next = selected.next(); if (next.length > 0) selected.detach().insertAfter(next); } Copy Solution 4: I created a jquery plugin for this: https://github.com/UziTech/jquery.moveSelected.js usage: $("button#up").click(function(){ $("select").moveSelectedUp(); }); $("button#down").click(function(){ $("select").moveSelectedDown(); }); Copy http://jsfiddle.net/UziTech/qr5qfhgg/ Solution 5: here is the same idea as the previously-posted non-jquery example, but with some strategic code re-use. My need was to have the buttons always operate on the same select element, named "cols". You could put "sel" as a parameter of the moveUp() and moveDown() functions if you want something more generic. function moveUp() { var sel = document.getElementById("cols"); var i1=0, i2=1; while (i2 < sel.options.length) { swapIf(sel,i1++,i2++); } } function moveDown() { var sel = document.getElementById("cols"); var i1=sel.options.length-1, i2=i1-1; while (i1 > 0) { swapIf(sel,i1--,i2--); } } var swapVar = ''; function swapIf(sel,i1,i2) { if ( ! sel[i1].selected && sel[i2].selected) { swapVar = sel[i2].text; sel[i2].text = sel[i1].text; sel[i1].text = swapVar; swapVar = sel[i2].value; sel[i2].value = sel[i1].value; sel[i1].value = swapVar; sel[i1].selected = true; sel[i2].selected = false; } } Copy Share Post a Comment for "How Can I Move Selected Option In Multiselect Up And Down By Buttons Using Jquery?" Top Question Firefox, Chrome, Safari Have Grey Background For Mp4 Html5 Video Any video (that I can make) with a white background becomes… Red Border Still Appears On Inputs After Resetting An HTML 5 Form Firefox I have an HTML 5 form! Great, I'm excited! I decide to … Svg Animation And Firefox I'm struggle with SVG animation drawing, which is work … Form To Iframe Submission - How Do You Reset The Form After File Upload? I have a form that submits the results to an iframe. The su… How To Hide/show Tabs Using Jquery I have four tabs.On loading only the first tab is opened an… How To Save Html5 Geolocation Data To Python Django Admin? Is it possible to save the javascript html5 geolocation lat… How To Limit The Html Table Records In Each Page I am populating a table in my jsp which has more than 20 re… How To Display A Python String As Html In Jupyter Notebook In IPython notebook, I used to be able to display a python … How To Add Placeholder Field? I've been trying to add placeholder in input type='… Bounce Animation On A Scaled Object What is the best way to have an object scale and then perfo…