> Could you possibly just give your form an id attribute?  Then onchange you
> could just return $("#myformid").attr("action") and not have to mess with
> any traversing.
>
> -- Josh
>
> ----- Original Message -----
> From: "briandichiara" <[EMAIL PROTECTED]>
> To: "jQuery (English)" <jquery-en@googlegroups.com>
> Sent: Thursday, May 08, 2008 1:58 PM
> Subject: [jQuery] Re: Getting Parent Element using "this"
>
> > Ok, I tried this:
>
> > $(elm).parents().map(function () {
> > alert(this.tagName);
> > });
>
> > but the FORM never shows up. Reason is because the source looks like
> > this:

There's no need for any of this; elements of a form (input, select,
textarea) has a "form" property, so:

  <form action="something">
  <select name="some_name" onchange="changeAction(this);">
  <!-- some options -->
  </select>
  </form>

  function changeAction(elm){
      var formAction = elm.form.action;
      ...
  }

And, as others have suggested, it's a better practice to do this all
in JavaScript, so that becomes:

  <form  action="something">
  <select id="some_select" name="some_name">
  <!-- some options -->
  </select>
  </form>

  jQuery(document).ready(function() {
    jQuery('select#some_select').change(function() {
      var formAction = this.form.action;
      ...
    });
  });

--

hj

Reply via email to