Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vertically displayed jquery buttonset

Tags:

jquery-ui

i'm using the jquery ui button, is it possible to display the radio button vertically?it seems to default to horizontal.

http://jqueryui.com/demos/button/#radio

many thanks

like image 349
nologo Avatar asked Nov 04 '10 15:11

nologo


2 Answers

I wrote a short plugin that implement vertical buttonset for radio buttons and checkboxes with jquery ui.

1. jQuery Plugin

(function( $ ){
//plugin buttonset vertical
$.fn.buttonsetv = function() {
  $(':radio, :checkbox', this).wrap('<div style="margin: 1px"/>');
  $(this).buttonset();
  $('label:first', this).removeClass('ui-corner-left').addClass('ui-corner-top');
  $('label:last', this).removeClass('ui-corner-right').addClass('ui-corner-bottom');
  var maxWidth = 0; // max witdh
  $('label', this).each(function(index){
     var labelWidth = $(this).width();
     if (labelWidth > maxWidth ) maxWidth = labelWidth ; 
  })
  $('label', this).each(function(index){
    $(this).width(maxWidth);
  })
};
})( jQuery );

2. Sample markup

<h2> Radio Buttonset </h2>
<div id="radio">
  <input type="radio" id="radio1" name="radio" value="1"/><label for="radio1">Choice 1</label>
  <input type="radio" id="radio2" name="radio" value="2"/><label for="radio2">Choice 2</label>
  <input type="radio" id="radio3" name="radio" value="3"/><label for="radio3">Choice 3</label>
</div>
<h2> Checkbox Buttonset </h2>
<div id="checkbox">
  <input type="checkbox" id="check1" name="check" value="1"/><label for="check1">Choice 1</label>
  <input type="checkbox" id="check2" name="check" value="2"/><label for="check2">Choice 2</label>
  <input type="checkbox" id="check3" name="check" value="3"/><label for="check3">Choice 3</label>
</div>

3. Plugin Usage

$(document).ready(function(){
    //call plugin 
    $("#radio").buttonsetv();
    $("#checkbox").buttonsetv();
});

Here the plugin and example code

I hope this can help you :)

like image 101
edersohe Avatar answered Nov 14 '22 02:11

edersohe


Place the individual buttons in their own div tags.

Credit to leacar21 from: https://forum.jquery.com/topic/how-to-vertical-radio-button-set

<div id="someSet"> <div><input type="radio" id="button1"... ></div> <div><input type="radio" id="button2"... ></div> <div><input type="radio" id="button3"... ></div> </div>

like image 4
Joshua Miller Avatar answered Nov 14 '22 02:11

Joshua Miller