Ok, I got it to work using the following: $("#chargetotal").change(updateDonationTotal); $("input:[name='donation_type']").change(updateDonationTotal);
I mistakenly posted chargetotal as the radio when it was actually a text field. That said, what is the difference between the following items: var donation_type = $("input:[...@name:donation_type]:checked").val(); $("input:[name='donation_type']").change(updateDonationTotal); It doesn't seem very intuitive to have to refer to the same item in different ways in order to get different results. I should be able to say "GET OBJECT where NAME EQUALS" regardless of whether I'm looking for its value or to bind to one of its methods. Can someone shed some light on why I must call each of these methods on the input in the different manners? Thanks. On Feb 18, 7:10 pm, mkmanning <michaell...@gmail.com> wrote: > try: > $("input:[...@id:chargetotal]").change(updateDonationTotal); > > On Feb 18, 1:55 pm, gberz3 <gbe...@gmail.com> wrote: > > > Hi All, > > > I'm having a bit of a problem with selectors and binding in jQuery. > > Basically I want to do 2 things: > > > 1) create a javascript method callable by name that updates a div > > 2) bind that method to a set of radio buttons that runs the method on > > change > > > It seems that none of the examples explicitly cover instances where > > you roll your own methods. They all assume "function(){}" which I > > personally consider messy. > > > That said, I have the following code thus far: > > > <script type="text/javascript"> > > > $(document).ready(function(){ > > function updateDonationTotal(){ > > var amount = > > $('#chargetotal').val(); > > var multiplier = 0; > > var total = 0; > > var donation_type = > > $("input:[...@name:donation_type]:checked").val > > (); > > var message = ""; > > //it's gonna be one of: > > donation_general, donation_stop_tab, > > donation_pipe > > > switch(donation_type){ > > case 'donation_general': > > {multiplier = 1; break} > > case 'donation_stop_tab': > > {multiplier = 500; break} > > case 'donation_pipe': > > {multiplier = 100; break} > > } > > > total = amount * multiplier; > > > message = " x " + multiplier > > + " = " + total; > > $("#donation_total").html(message); > > console.log(message); > > }; > > > > > $("input:[...@id:chargetotal]").change(updateDonationTotal();); > > > }); > > > </script> > > > The method 'updateDonationTotal' works fine. However, I receive > > errors when trying to bind the method in various ways to the radio > > buttons. I've tried 'bind', 'click', 'change'...all error out. > > Please advise. > > > Best!