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

Reply via email to