Re: 2 submit buttons.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux