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