diff options
Diffstat (limited to 'WebCore/html/HTMLFormElement.cpp')
-rw-r--r-- | WebCore/html/HTMLFormElement.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/WebCore/html/HTMLFormElement.cpp b/WebCore/html/HTMLFormElement.cpp index d7f5d96..7c58364 100644 --- a/WebCore/html/HTMLFormElement.cpp +++ b/WebCore/html/HTMLFormElement.cpp @@ -176,21 +176,20 @@ Node* HTMLFormElement::item(unsigned index) return elements()->item(index); } -void HTMLFormElement::submitImplicitly(Event* event, bool fromTextField) +void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmissionTrigger) { - int textControlCount = 0; + int submissionTriggerCount = 0; for (unsigned i = 0; i < formElements.size(); ++i) { - if (formElements[i]->hasLocalName(inputTag)) { - HTMLInputElement* element = static_cast<HTMLInputElement*>(formElements[i]); - if (element->isSuccessfulSubmitButton() && element->renderer()) { - element->dispatchSimulatedClick(event); + HTMLFormControlElement* formElement = formElements[i]; + if (formElement->isSuccessfulSubmitButton()) { + if (formElement->renderer()) { + formElement->dispatchSimulatedClick(event); return; - } else if (element->isTextField()) - ++textControlCount; - } else if (formElements[i]->hasLocalName(isindexTag)) - ++textControlCount; + } + } else if (formElement->canTriggerImplicitSubmission()) + ++submissionTriggerCount; } - if (fromTextField && textControlCount == 1) + if (fromImplicitSubmissionTrigger && submissionTriggerCount == 1) prepareSubmit(event); } |