var ret = '<table class="table table-striped">'
for(i=1;i<=30;i++){
ret += '<tr>';
ret += '<td><label class="radio" for="idradio_y'+i+'" name="xolb_form_radio'+i+'"><input type="radio" name="form_radio['+i+']" id="idradio_y'+i+'" value="y">Yes</label></td>';
ret += '<td><label class="radio" for="idradio_n'+i+'" name="xolb_form_radio'+i+'"><input type="radio" name="form_radio['+i+']" id="idradio_n'+i+'" value="n">No</label></td>';
ret += '</tr>';
}
ret += '</table>';
$('#output').html(ret)
var index = 0;
var shift_down = false;
var radio_group = {
'y':$(':radio[id^="idradio_y"]'),
'n':$(':radio[id^="idradio_n"]')
}
radio_group.y.prop('checked',true);
$(':radio').bind('change',function(){
var this_index = radio_group[this.value].index(this);
if( shift_down )
{
var start = Math.min(index,this_index);
var end = Math.max(index,this_index);
radio_group[this.value].slice(start,end).prop('checked',true);
}
index = this_index
})
$(document).bind('keydown',function(e){
if(e.which == 16 ){
shift_down = true;
$('#output tr').eq(index).addClass('info')
}
}).bind('keyup',function(e){
if(e.which == 16 ){
shift_down = false;
$('#output tr').removeClass('info')
}
}).bind('selectstart',function(){return false})
<h1>Radio Shift Select</h1>
<div id="output"></div>
External resources loaded into this fiddle: