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 (!seenDefaultButton && control->canBeSuccessfulSubmitButton()) { 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()) { ++submissionTriggerCount; } } if (fromImplicitSubmissionTrigger && submissionTriggerCount == 1) prepareForSubmission(event); }
void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmissionTrigger) { unsigned submissionTriggerCount = 0; for (unsigned i = 0; i < m_associatedElements.size(); ++i) { FormAssociatedElement* formAssociatedElement = m_associatedElements[i]; if (!formAssociatedElement->isFormControlElement()) continue; HTMLFormControlElement* formElement = static_cast<HTMLFormControlElement*>(formAssociatedElement); if (formElement->isSuccessfulSubmitButton()) { if (formElement->renderer()) { formElement->dispatchSimulatedClick(event); return; } } else if (formElement->canTriggerImplicitSubmission()) ++submissionTriggerCount; } if (!submissionTriggerCount) return; // Older iOS apps using WebViews expect the behavior of auto submitting multi-input forms. Settings* settings = document().settings(); if (fromImplicitSubmissionTrigger && (submissionTriggerCount == 1 || (settings && settings->allowMultiElementImplicitSubmission()))) prepareForSubmission(event); }
void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmissionTrigger) { int submissionTriggerCount = 0; for (unsigned i = 0; i < m_associatedElements.size(); ++i) { HTMLFormControlElement* formElement = m_associatedElements[i]; if (formElement->isSuccessfulSubmitButton()) { if (formElement->renderer()) { formElement->dispatchSimulatedClick(event); return; } } else if (formElement->canTriggerImplicitSubmission()) ++submissionTriggerCount; } if (fromImplicitSubmissionTrigger && submissionTriggerCount == 1) prepareSubmit(event); }