Chromium Code Reviews| Index: Source/core/html/HTMLFormElement.cpp |
| diff --git a/Source/core/html/HTMLFormElement.cpp b/Source/core/html/HTMLFormElement.cpp |
| index 7649e6e3900f6acf67e6fd2a13e0ff3512c587c2..61305ef52daea29c0f01e99a7127c392c317f461 100644 |
| --- a/Source/core/html/HTMLFormElement.cpp |
| +++ b/Source/core/html/HTMLFormElement.cpp |
| @@ -173,18 +173,27 @@ Node* HTMLFormElement::item(unsigned index) |
| void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmissionTrigger) |
| { |
| int submissionTriggerCount = 0; |
| + bool seenDefaultButton = false; |
| for (unsigned i = 0; i < m_associatedElements.size(); ++i) { |
| FormAssociatedElement* formAssociatedElement = m_associatedElements[i]; |
| if (!formAssociatedElement->isFormControlElement()) |
| continue; |
| HTMLFormControlElement* control = toHTMLFormControlElement(formAssociatedElement); |
| - if (control->isSuccessfulSubmitButton()) { |
| - if (control->renderer()) { |
| - control->dispatchSimulatedClick(event); |
| + if (!seenDefaultButton && control->canBeSuccessfulSubmitButton()) { |
|
eseidel
2013/11/14 16:40:32
I think you mean couldBeSuccessful? http://en.wiki
sof
2013/11/15 08:52:15
Maybe the naming could be made clearer, it current
|
| + if (fromImplicitSubmissionTrigger) |
| + seenDefaultButton = true; |
| + if (control->isSuccessfulSubmitButton()) { |
| + if (control->renderer()) { |
| + control->dispatchSimulatedClick(event); |
| + return; |
| + } |
| + } else if (fromImplicitSubmissionTrigger) { |
| + // Default (submit) button is not activated; no implicit submission. |
| return; |
| } |
| - } else if (control->canTriggerImplicitSubmission()) |
| + } else if (control->canTriggerImplicitSubmission()) { |
| ++submissionTriggerCount; |
| + } |
| } |
| if (fromImplicitSubmissionTrigger && submissionTriggerCount == 1) |
| prepareForSubmission(event); |