Client-side javascript question

Hey

I'm new to Rails, and I was wondering if there was a way to include
custom javascript libraries in the HTML views? I've been searching for
a while and can't seem to find any way to do this.

For example, I want to have some javascript function firing an onkeyup
event from an input element that is generated dynamically. It's
nothing to do with ajax -- all client side. Everything I've found just
deals with remote calls. I suspect it is something to do with
observe_field :function, but can't seem to get it working.

Thanks.

Hey

I'm new to Rails, and I was wondering if there was a way to include
custom javascript libraries in the HTML views? I've been searching for
a while and can't seem to find any way to do this.

For example, I want to have some javascript function firing an onkeyup
event from an input element that is generated dynamically. It's
nothing to do with ajax -- all client side. Everything I've found just
deals with remote calls. I suspect it is something to do with
observe_field :function, but can't seem to get it working.

Just go ahead and write the javascript as you normally would. the
helpers can be handy in some cases but don't be afraid of ignoring
them

Fred

Ah. At first I thought I had done that, but I must have mistyped it
when I first did it. I wish I had asked earlier now, just spent quite
a while banging my head against a wall for nothing. :frowning:

Stupid :onkeyup =>.

Thanks. :smiley:

I like the javascript_include_tag helper to keep the javascript out of
the view.

In one of my views I have a collection of radio buttons with class
"our_aircraft" and a text field with class "other_aircraft". Then I
pull in some javascript:

    = javascript_include_tag 'aircraft_selection'

In public/javascripts/aircraft_selection.js I clear the text field
when a radio button is checked and clear the radio buttons when the
text field receives input:

$(document).ready(function () {
  $(".our_aircraft").change(function () {
    $(".other_aircraft").val("");
  });

  $(".other_aircraft").keyup(function () {
    if ($(this).val() > "") {
      $(".our_aircraft").removeAttr("checked");
    }
  });
});

Enjoy!
Bryan