how to change the value of a hidden form value on submit

Discussion in 'Javascript' started by Matt Herson, Sep 29, 2003.

  1. Matt Herson

    Matt Herson Guest

    I have been trying to find a way to use JavaScript to change the value of a
    hidden field on submit. I am already invoking a JavaScript to handle the
    validation on submit.

    The reason I need to change this field is some of the forms have two buttons
    on them, each needs to process the form differently. If I can change the
    value of the hidden field dynamically it will solve my issue as I can run
    each against a diffent cgi.

    Currently my submit button looks like:

    <a href="javascript:sendOrnot()"><img
    src="../../../images/request_info_submit_submitImg.gif" border="0"></a>



    I need one button to pass the value of:

    <input type=hidden name=form-name value="request_for_info">

    And the other as:

    <input type=hidden name=form-name value="request_for_info_ver2">

    I have tried using something like:

    <form>

    <input type="hidden" name="form-name" value="">

    <input type="image" src="../../../images/request_info_submit_submitImg.gif"
    onclick="this.form.form-name.value='request_for_info';this.form.sendOrnot()"
    >


    <input type="image"
    src="../../../images/request_info_submit_ver2_submitImg.gif"onclick="this.fo
    rm.form-name.value='request_for_info_ver2';this.form.this.form.sendOrnot()">

    </form>

    Doing so, gave me an invalid form error.

    Any ideas on how I could accomplish this. I have done a lot of looking on
    the web and have tried many things but have not had any luck. Any help would
    be extremly appreciated. In addition to passing the changed value for
    form-name, I also still need to invoke the JavaScript used for my
    validation.

    Thanks,

    Matt
    Matt Herson, Sep 29, 2003
    #1
    1. Advertising

  2. Matt Herson

    Wim Poorten Guest

    Matt Herson wrote:
    > <form>
    >
    > <input type="hidden" name="form-name" value="">
    >
    > <input type="image"
    > src="../../../images/request_info_submit_submitImg.gif"
    >

    onclick="this.form.form-name.value='request_for_info';this.form.sendOrnot()"
    >>

    >
    > <input type="image"
    >

    src="../../../images/request_info_submit_ver2_submitImg.gif"onclick="this.fo
    >

    rm.form-name.value='request_for_info_ver2';this.form.this.form.sendOrnot()">
    >
    > </form>
    >
    > Doing so, gave me an invalid form error.


    The dash is not allowed in the name of a control.
    Change "form-name" into "form_name".

    I guess the "this.form.this.form.sendOrnot()" for the second image is a
    typo.

    --

    Wim Poorten
    Wim Poorten, Sep 29, 2003
    #2
    1. Advertising

  3. "Wim Poorten" <> wrote in message
    news:p9Sdb.4508$-ops.be...
    <snip>
    >The dash is not allowed in the name of a control.
    >Change "form-name" into "form_name".

    <snip>

    The dash is allowed in the name of a control.

    From the HTML specification:-
    <quote>
    ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
    followed by any number of letters, digits ([0-9]), hyphens ("-"),
    underscores ("_"), colons (":"), and periods (".").
    </quote>

    The dash is not allowed in a JavaScript identifier and only valid
    JavaScript identifiers are allowed within dot notation property
    accessors. Bracket notation property accessors should be a viable
    alternative in this case:-

    <URL: http://jibbering.com/faq/#FAQ4_25 >
    -and-
    <URL: http://jibbering.com/faq/#FAQ4_39 >

    Richard.
    Richard Cornford, Sep 29, 2003
    #3
  4. Matt Herson

    Matt Herson Guest

    ok, assuming the dash is accepted, any ideas on how to accomplish the change
    to the hidden field?


    "Richard Cornford" <> wrote in message
    news:bl9g77$efq$1$...
    > "Wim Poorten" <> wrote in message
    > news:p9Sdb.4508$-ops.be...
    > <snip>
    > >The dash is not allowed in the name of a control.
    > >Change "form-name" into "form_name".

    > <snip>
    >
    > The dash is allowed in the name of a control.
    >
    > From the HTML specification:-
    > <quote>
    > ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
    > followed by any number of letters, digits ([0-9]), hyphens ("-"),
    > underscores ("_"), colons (":"), and periods (".").
    > </quote>
    >
    > The dash is not allowed in a JavaScript identifier and only valid
    > JavaScript identifiers are allowed within dot notation property
    > accessors. Bracket notation property accessors should be a viable
    > alternative in this case:-
    >
    > <URL: http://jibbering.com/faq/#FAQ4_25 >
    > -and-
    > <URL: http://jibbering.com/faq/#FAQ4_39 >
    >
    > Richard.
    >
    >
    Matt Herson, Sep 29, 2003
    #4
  5. "Matt Herson" <> wrote in message
    news:bl9j0e$37d$...
    > ok, assuming the dash is accepted, any ideas on how to accomplish the

    change
    > to the hidden field?

    <snip>
    >><URL: http://jibbering.com/faq/#FAQ4_25 >
    >>-and-
    >><URL: http://jibbering.com/faq/#FAQ4_39 >

    <snip>

    The whole task is unnecessary as <input type="image"> elements provide
    name/value pairs in the request if they are given name attributes. Two
    buttons with unique names would allow the button that was actually
    clicked to be determined on the server by testing for the presence of a
    value of each name (the name/value pairs will not be present for the
    button that was not clicked).

    For an <input type="image"> element the name value pairs are not the
    same as with a normal submit button as they include the XY co-ordinates
    of the mouse click. Given an element:-

    <input type="image" name="submit1" src="[...].gif">

    - the query string sent with a get request would be -
    ?submit1.x=0&submit1.y=0 - (similar information can be extracted from
    post requests). Branching the code on the server based on this
    information is trivial.

    Otherwise, if you insist on making this dependent on JavaScript, you
    will need to switch to setting the value of the hidden filed using a
    bracket notation property accessor to avoid the invalid (for a
    JavaScript identifier) characters in the field name. You will also nee
    to cancel the default action of the <input type="submit"> buttons (which
    is to submit the form), or cancel the submission of the form from the
    onsubmit handler.

    Richard.
    Richard Cornford, Sep 29, 2003
    #5
  6. Matt Herson

    Matt Herson Guest

    The validation script that has been developed will not support input
    type=image tags for the submit button. It needs to be done within an <a>
    tag. So, I need to use the link like:
    <a href="javascript:sendOrnot()"><img
    src="../../../images/request_info_submit_submitImg.gif" border="0"></a>
    but pass the hidden values at the same time

    Any ideas??



    "Richard Cornford" <> wrote in message
    news:bl9url$9sk$1$...
    > "Matt Herson" <> wrote in message
    > news:bl9j0e$37d$...
    > > ok, assuming the dash is accepted, any ideas on how to accomplish the

    > change
    > > to the hidden field?

    > <snip>
    > >><URL: http://jibbering.com/faq/#FAQ4_25 >
    > >>-and-
    > >><URL: http://jibbering.com/faq/#FAQ4_39 >

    > <snip>
    >
    > The whole task is unnecessary as <input type="image"> elements provide
    > name/value pairs in the request if they are given name attributes. Two
    > buttons with unique names would allow the button that was actually
    > clicked to be determined on the server by testing for the presence of a
    > value of each name (the name/value pairs will not be present for the
    > button that was not clicked).
    >
    > For an <input type="image"> element the name value pairs are not the
    > same as with a normal submit button as they include the XY co-ordinates
    > of the mouse click. Given an element:-
    >
    > <input type="image" name="submit1" src="[...].gif">
    >
    > - the query string sent with a get request would be -
    > ?submit1.x=0&submit1.y=0 - (similar information can be extracted from
    > post requests). Branching the code on the server based on this
    > information is trivial.
    >
    > Otherwise, if you insist on making this dependent on JavaScript, you
    > will need to switch to setting the value of the hidden filed using a
    > bracket notation property accessor to avoid the invalid (for a
    > JavaScript identifier) characters in the field name. You will also nee
    > to cancel the default action of the <input type="submit"> buttons (which
    > is to submit the form), or cancel the submission of the form from the
    > onsubmit handler.
    >
    > Richard.
    >
    >
    Matt Herson, Sep 29, 2003
    #6
  7. "Matt Herson" <> writes:

    Please don't top post.

    > The validation script that has been developed will not support input
    > type=image tags for the submit button.


    Ok, then how about:

    <button type="submit" name="submit1"><img src="..."></button>

    > It needs to be done within an <a> tag. So, I need to use the link
    > like:


    Who says that it *needs* that? Maybe there is another way?

    > <a href="javascript:sendOrnot()"><img
    > src="../../../images/request_info_submit_submitImg.gif" border="0"></a>


    At lease use the onclick attribute instead of a javascript: pseudo
    protocol.

    > but pass the hidden values at the same time


    Make a hidden field and populate them with the values you want, as
    Richard Cornford said.

    /L
    --
    Lasse Reichstein Nielsen -
    Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
    'Faith without judgement merely degrades the spirit divine.'
    Lasse Reichstein Nielsen, Sep 29, 2003
    #7
  8. Matt Herson

    Stephen Guest

    Richard Cornford wrote:

    > "Matt Herson" <> wrote in message
    > news:bl9j0e$37d$...
    >
    >>ok, assuming the dash is accepted, any ideas on how to accomplish the

    >
    > change
    >
    >>to the hidden field?

    >
    > <snip>
    >
    >>><URL: http://jibbering.com/faq/#FAQ4_25 >
    >>>-and-
    >>><URL: http://jibbering.com/faq/#FAQ4_39 >

    >
    > <snip>
    >
    > The whole task is unnecessary as <input type="image"> elements provide
    > name/value pairs in the request if they are given name attributes. Two
    > buttons with unique names would allow the button that was actually
    > clicked to be determined on the server by testing for the presence of a
    > value of each name (the name/value pairs will not be present for the
    > button that was not clicked).
    >
    > [...snip subsequent...]


    Most browsers I tested (3 gecko-based + ie6) would do this with buttons
    having the same name but different values, e.g.,

    name="form-name"
    value="request_for_info"

    name="form-name"
    value="request_for_info_ver2"

    This *should* work per W3 specs as I understand them. However, I tried
    this with opera 7.11, which seemed to omit the name=value pair, even
    though it transmits the image click coordinates just fine--as, for
    example, "form-name.x=8&form-name.y=9". Unless I'm just looney and
    didn't see it correctly. This seems to me to be incorrect following of
    the specs. It's certainly different from the way "everybody else" does it.

    So I guess you probably would be better off with two different names for
    the buttons:

    name="request_for_info"
    name="request_for_info_ver2"

    At least this way, "everybody" transmits the same thing on submit.

    I definitely agree this is the way to go ...

    Regards,
    Stephen
    Stephen, Sep 29, 2003
    #8
  9. Matt Herson

    Matt Herson Guest

    "Stephen" <> wrote in message
    news:Sk0eb.171145$...
    > Richard Cornford wrote:
    >
    > > "Matt Herson" <> wrote in message
    > > news:bl9j0e$37d$...
    > >
    > >>ok, assuming the dash is accepted, any ideas on how to accomplish the

    > >
    > > change
    > >
    > >>to the hidden field?

    > >
    > > <snip>
    > >
    > >>><URL: http://jibbering.com/faq/#FAQ4_25 >
    > >>>-and-
    > >>><URL: http://jibbering.com/faq/#FAQ4_39 >

    > >
    > > <snip>
    > >
    > > The whole task is unnecessary as <input type="image"> elements provide
    > > name/value pairs in the request if they are given name attributes. Two
    > > buttons with unique names would allow the button that was actually
    > > clicked to be determined on the server by testing for the presence of a
    > > value of each name (the name/value pairs will not be present for the
    > > button that was not clicked).
    > >
    > > [...snip subsequent...]

    >
    > Most browsers I tested (3 gecko-based + ie6) would do this with buttons
    > having the same name but different values, e.g.,
    >
    > name="form-name"
    > value="request_for_info"
    >
    > name="form-name"
    > value="request_for_info_ver2"
    >
    > This *should* work per W3 specs as I understand them. However, I tried
    > this with opera 7.11, which seemed to omit the name=value pair, even
    > though it transmits the image click coordinates just fine--as, for
    > example, "form-name.x=8&form-name.y=9". Unless I'm just looney and
    > didn't see it correctly. This seems to me to be incorrect following of
    > the specs. It's certainly different from the way "everybody else" does it.
    >
    > So I guess you probably would be better off with two different names for
    > the buttons:
    >
    > name="request_for_info"
    > name="request_for_info_ver2"
    >
    > At least this way, "everybody" transmits the same thing on submit.
    >
    > I definitely agree this is the way to go ...
    >
    > Regards,
    > Stephen
    >
    >
    >

    THANKS TO YOU ALL!
    Now, as it turns out the validator I was using won't work anyway. So I no
    longer need to submit using the <a href x> tag. Thanks again. Now I will
    be posting a validation issue.
    Matt Herson, Sep 30, 2003
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Rick
    Replies:
    3
    Views:
    8,089
    Alexey Smirnov
    Apr 13, 2010
  2. GavMc
    Replies:
    4
    Views:
    308
    Evertjan.
    Sep 22, 2005
  3. Replies:
    5
    Views:
    165
  4. Replies:
    0
    Views:
    786
  5. Replies:
    3
    Views:
    647
Loading...

Share This Page