[Javascript] Dollar function for name=

John Warner john at jwarner.com
Thu Nov 4 17:49:08 CDT 2010


Thanks

John Warner


> -----Original Message-----
> From: javascript-bounces at lists.evolt.org [mailto:javascript-
> bounces at lists.evolt.org] On Behalf Of Terry Riegel
> Sent: Thursday, November 04, 2010 4:35 PM
> To: JavaScript List
> Subject: Re: [Javascript] Dollar function for name=
> 
> Hello All,
> 
> Way back in June I asked for a method for getting an element with
> name="blah"
> 
> I have finished my work with it and thought I would post here for any
that may
> find the need for similar functionality in the future.
> 
> I created 2 functions for setting and getting the value of a form
element. I did
> this to normalize across all of the different types of form elements
like radio,
> checkbox, input, textarea, etc...
> 
> Here are the functions...
> 
> function setvalue(nm,v) {
>  var i,n=document.getElementsByName(nm);
>  for (i=0; i < n.length; i++) {
>   if (n[i].type == 'hidden' || n[i].type == 'text' || n[i].type ==
'password' || n[i].type
> == 'textarea'){ n[i].value=v[0]; }
>   if (n[i].type == 'checkbox' && n[i].nodeName == 'INPUT' ){
>    if ( v.has(n[i].value) ) {
>     n[i].checked=true;
>    } else {
>     n[i].checked=false;
>    }
>   }
>   if (n[i].nodeName == 'SELECT'){
>    var z, inputArray=document.getElementsByTagName('option');
>    for (z=0; z < inputArray.length; z++) {
>     if (v.has(inputArray[z].value) ){
>      inputArray[z].selected=true;
>     } else {
>      inputArray[z].selected=false;
>     }
>    }
>   }
>   if (n[i].type == 'radio' && n[i].nodeName == 'INPUT'){
>    if ( v.has(n[i].value) ) {
>     n[i].checked=true;
>    } else {
>     n[i].checked=false;
>    }
>   }
>  }
> }
> 
> 
> function getvalue(nm) {
>  var i,n=document.getElementsByName(nm);
>  var v=[];
>  for (i=0; i < n.length; i++) {
>   if (n[i].type == 'hidden' || n[i].type == 'text' || n[i].type ==
'password' || n[i].type
> == 'textarea'){ return n[i].value; }
>   if (n[i].type == 'radio' && n[i].nodeName == 'INPUT' && n[i].checked){
return
> n[i].value; }
>   if (n[i].type == 'checkbox' && n[i].nodeName == 'INPUT' &&
n[i].checked){
> v.push(n[i].value); }
>   if (n[i].nodeName == 'SELECT'){
>    var z, inputArray=n[i].getElementsByTagName('option');
>    for (z=0; z < inputArray.length; z++) {
>     if (inputArray[z].selected){
>      v.push(inputArray[z].value);
>     }
>    }
>   }
>  }
>  return v;
> }
> 
> 
> 
> 
> 
> 
> 
> On Jun 7, 2010, at 9:32 PM, Philip Thompson wrote:
> 
> > On Jun 7, 2010, at 7:38 PM, Terry Riegel wrote:
> >
> >> On Jun 7, 2010, at 8:23 PM, Philip Thompson <philthathril at gmail.com>
> wrote:
> >>
> >>> On Jun 7, 2010, at 12:32 AM, Paul Novitski wrote:
> >>>
> >>>> At 6/6/2010 09:46 PM, Philip Thompson wrote:
> >>>>> $$('input[name=pizza]').some(function (el) {
> >>>>> if (el.get('value') == 'sausage') {
> >>>>>     el.set('checked', true);
> >>>>>     return true;
> >>>>> }
> >>>>> return false;
> >>>>> });
> >>>>
> >>>>
> >>>> Since a radio button group can have only one option checked, we'd
want
> to clear the 'checked' attribute for every non-sausage field:
> >>>>
> >>>>     if (el.get('value') == 'sausage')
> >>>>     {
> >>>>             el.set('checked', true);
> >>>>             return true;
> >>>>     }
> >>>>     else
> >>>>     {
> >>>>             el.set('checked', false);
> >>>>             return false;
> >>>>     }
> >>>>
> >>>> or, more concisely although perhaps not as readably:
> >>>>
> >>>>     var bState = (el.get('value') == 'sausage');
> >>>>     el.set('checked', bState);
> >>>>     return bState;
> >>>>
> >>>> Regards,
> >>>>
> >>>> Paul
> >>>
> >>> There shouldn't be a need to uncheck the other (potentially-)
selected
> radio buttons. Selecting one will, by default, unselect the others with
the same
> name just as if you had clicked on one.
> >>>
> >>> ~Philip
> >>
> >> Unless your a belt and suspenders type of person.
> >
> > Touché
> >
> >
> > _______________________________________________
> > Javascript mailing list
> > Javascript at lists.evolt.org
> > http://lists.evolt.org/mailman/listinfo/javascript
> 
> _______________________________________________
> Javascript mailing list
> Javascript at lists.evolt.org
> http://lists.evolt.org/mailman/listinfo/javascript




More information about the Javascript mailing list