フォームのエレメントに値を設定する radio,checkbox,textarea,selectにも対応?

function setFormValue ( n, v ) {
  var d = document;
 var objs = d.getElementsByName( n ) || [ document.getElementById( n ) ];
 var i = 0, p;
 
 while( p = objs[ i++ ] ) {
  switch( p.type ) {
   case 'text': case 'textarea': case 'button':
      case 'reset': case 'submit': case 'hidden':
    p.value = v;
        break;

   case 'checkbox': case 'radio':
    p.checked = p.value == v;
        break;

   case 'select-one': case 'select-multiple':
    var j = 0, o;
        
        while( o = p.options[ j++ ] )
          o.selected = o.value == v;
        break;
  }
 }
}