Using SELECT value with onClick event

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • yankee

    Using SELECT value with onClick event

    Hi all,

    I have the following HTML code:

    <form>
    <table border=1 cellspacing=0 cellpadding=3>
    <tr>
    <td>Select a Document:</td>
    <td><SELECT name="type" id="type">
    <OPTION
    VALUE="/cgi-bin/doctrack.cgi?up date_doc=1&doc_ id=27&version=1 &revision=0&no_ sop=SOP1435">SO P1435
    <OPTION
    VALUE="/cgi-bin/doctrack.cgi?up date_doc=1&doc_ id=3&version=1& revision=0&no_s op=SOP2223">SOP 2223
    <OPTION
    VALUE="/cgi-bin/doctrack.cgi?up date_doc=1&doc_ id=5&version=1& revision=0&no_s op=SOP2224">SOP 2224
    <OPTION
    VALUE="/cgi-bin/doctrack.cgi?up date_doc=1&doc_ id=33&version=1 &revision=0&no_ sop=SOP2225">SO P2225
    </SELECT></td>
    </tr>
    </table></form>
    <BR>
    <input type="button" value="Next -->"
    onClick="docume nt.forms[0].type.submit(); ">

    When I click on the button, I have a javascript error. I just want to
    execute the command into the "VALUE" argument when I click on the
    button. How I can do that?

    Thank you

    Regards,
    Yanick Quirion

  • Grant Wagner

    #2
    Re: Using SELECT value with onClick event

    "yankee" <neokimia@hotma il.com> wrote in message
    news:1105641774 .688511.202010@ f14g2000cwb.goo glegroups.com.. .
    [color=blue]
    > When I click on the button, I have a javascript error. I just want to
    > execute the command into the "VALUE" argument when I click on the
    > button. How I can do that?[/color]

    Give your <form> a default action:

    <form action="noJS.ht ml" method="GET">

    Change the name and id of your <select> to something other than "type"
    (a Select object has a "type" property which you are overriding by
    naming it that). Also the name and the id should not be the same:

    <select name="myType" id="myTypeId">

    Then have a submit button as follows:

    <input type="submit"
    value="Next -->"
    onclick="
    var s = this.form.eleme nts['myType'];
    this.form.actio n = s.options[s.selectedIndex].value;
    "[color=blue]
    >[/color]

    This way, if JavaScript is available, the -action- of the form will
    change and the form will do a GET to the value of the currently selected
    Optioin. If JavaScript is disabled or unavailable, the form will submit
    to the default action you specified display a page telling the user the
    form only works if they have JavaScript enabled.

    --
    Grant Wagner <gwagner@agrico reunited.com>
    comp.lang.javas cript FAQ - http://jibbering.com/faq


    Comment

    • RobG

      #3
      Re: Using SELECT value with onClick event

      Grant Wagner wrote:
      [...][color=blue]
      > ... Also the name and the id should not be the same:
      >
      > <select name="myType" id="myTypeId">[/color]

      I thought id and name should be the same because of the way IE seems to
      treat them as equals (in IE, getElementById( 'x') will get a named form
      element named x even if it has no id, where as other browsers will only
      get it if it has an id x).

      Can you elaborate?
      [color=blue]
      >
      > Then have a submit button as follows:
      >
      > <input type="submit"
      > value="Next -->"
      > onclick="
      > var s = this.form.eleme nts['myType'];
      > this.form.actio n = s.options[s.selectedIndex].value;
      > "[/color]

      Would this be better as an onsubmit on the form, rather than on onclick
      on the submit button? To me that seems better from a maintenance point
      of view, so the action, onsubmit, etc. are all coded in the same place
      but there may be other issues to consider.

      The OP has put the "submit" outside the form, will this.form... still
      work? I think you are suggesting the submit be *in* the form, I'm not
      sure the OP will realise that.

      If the submit is to be triggered from outside the form, then that may
      be an argument for including any actions in the form's onsubmit, rather
      than on the button (though there are likely arguments both ways). I'd
      be more curious as to why the submit is not in the form.
      [color=blue]
      > This way, if JavaScript is available, the -action- of the form will
      > change and the form will do a GET to the value of the currently selected
      > Optioin. If JavaScript is disabled or unavailable, the form will submit
      > to the default action you specified display a page telling the user the
      > form only works if they have JavaScript enabled.
      >[/color]

      Or do the required function on the server?


      --
      Rob

      Comment

      Working...