Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #33994

Re: Issue with two submit button for one form

Path csiph.com!feeder.erje.net!2.eu.feeder.erje.net!news.mb-net.net!open-news-network.org!.POSTED.234.232.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: Issue with two submit button for one form
Supersedes <1732336.PYKUYFuaPT@PointedEars.de>
Date Tue, 19 Sep 2017 10:55:40 +0200
Organization PointedEars Software (PES)
Lines 61
Message-ID <19565434.EfDdHjke4D@PointedEars.de> (permalink)
References <978f5753-ab82-4206-89cc-1d91e98a9fcc@googlegroups.com> <t7jc5yu0oh7e$.slzkald15fzg$.dlg@40tude.net>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
Injection-Info gwaiyur.mb-net.net; posting-host="234.232.197.178.dynamic.wless.lssmb00p-cgnat.res.cust.swisscom.ch:178.197.232.234"; logging-data="16157"; mail-complaints-to="abuse@open-news-network.org"
User-Agent KNode/4.14.2
Cancel-Lock sha1:TaaeEGeA9B/UQT9UKiu9chWGjHc=
X-User-ID U2FsdGVkX18npF2htze/nihnj7HWsK8BZIv1IrSzlfClxFTQEC086Q==
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
Cancel-Key sha1:MwTF3/BtjEUExGGh+46PuvkSXZE=
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Xref csiph.com comp.lang.javascript:33994

Show key headers only | View raw


JJ Abrams wrote:

> On Mon, 11 Sep 2017 15:37:09 -0700 (PDT), justaguy wrote:
>> But if I enter/edit data, click on "Save & Continue", and then, after
>> more data entry/editing click on "Save & Exit", it triggers the "Save &
>> Continue" event instead of submitting the form and leave the page.
> 
> That's not possible.

Yes, it is.

> Both buttons will always submit the form (and leave the page) as long as
> you don't get any "xyz is required" alert message. While `saveData()` 
> function does return `false`, the returned value is never used by the
> caller.

“return” can be used in event-handler attribute values as well, and 
returning “false” there cancels the “click” event.  Also, events can be 
canceled in event listeners by calling their preventDefault() and, if 
suitable, stopPropagation() methods.

To be sure, a value can be set on “click” to indicate which submit button 
was selected before the form’s “submit” event is fired, and that value can 
be used in the “onsubmit” event-handler attribute of the form to cancel the 
“submit” event by returning “false”, or in the “submit” event listener by 
calling Event::preventDefault(), and perhaps Event::stopPropagation() too, 
depending on the selected button.  If the form is submitted by keyboard when 
a control that is not a submit button has the focus, the first submit button 
in the form in document tree order should be the selected one; “tabindex” 
apparently makes no difference.

Using event-handler attributes:

  <script type="text/javascript">
    var me = {
      submitId: "submit2",

      formSubmit: function (form) {
        if (this.buttonId != this.submitId) return false;
        return true;
      },

      submitClick: function (button) {
        this.buttonId = button.id;
        return (button.id == this.submitId);
      }
    };
  </script>

  <form … onsubmit="return me.formSubmit(this)">
    <input name="test">
    <input type="submit" id="submit1" value="Submit 1"
           onclick="return me.submitClick(this)">
    <input type="submit" id="submit2" value="Submit 1"
           onclick="return me.submitClick(this)">
  </form>

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

Issue with two submit button for one form justaguy <lichunshen84@gmail.com> - 2017-09-11 15:37 -0700
  Re: Issue with two submit button for one form Osmo Saarikumpu <osmo@weppipakki.com> - 2017-09-12 07:47 +0300
  Re: Issue with two submit button for one form JJ <jj4public@vfemail.net> - 2017-09-12 18:23 +0700
    Re: Issue with two submit button for one form justaguy <lichunshen84@gmail.com> - 2017-09-14 15:30 -0700
    Re: Issue with two submit button for one form Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-09-19 10:55 +0200

csiph-web