Re: 2 submit buttons.

From: Date: Mon, 14 Feb 2011 22:15:11 +0000
Subject: Re: 2 submit buttons.
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-311287@lists.php.net to get a copy of this message
On Feb 14, 2011, at 4:18 PM, Paul M Foster wrote: > On Mon, Feb 14, 2011 at 03:35:02PM -0400, Paul Halliday wrote: > >> I have 2 buttons on a page: >> >> if (isset($_POST['botton1'])) {dothing1();} >> if (isset($_POST['button2'])) {dothing2();} >> >> They both work as intended when I click on them. If however I click >> within a text box and hit enter, they both fire. >> >> Is there a way to stop this? > > Check your code. My experience has been that forms with multiple submits > will fire the *first* submit in the form when you hit Enter in a text > field or whatever. I just tested this and found it to be true. > > Now, I'm doing this in Firefox on Linux. I suppose there could be > differences among browsers, but I suspect that the specs for HTML > mandate the behavior I describe. > > Paul > If you don't mind using a little JavaScript you can test for which button should fire when enter is pressed. How I would do it is to first add a hidden field and call it "buttonClicked". Now, in the text field where you would like a button to fire if enter is pressed, at this to the tag: onkeyup="checkKey(this,event)". For the JavaScript portion of it, do this: function checkKey(element,evt) { var buttonClicked="" if(evt.keyCode=13) { if(element.name="field1") { buttonClicked="button1" } else if(element.name=="field2") { buttonClicked="button2" } if(buttonClicked) { document.formName.buttonClicked.value=buttonClicked document.formName.submit() } } } Hope that helps! Take care, Floyd

« previous php.general (#311287) next »