(function(prototype) { if (typeof prototype.requestSubmit == "function") return prototype.requestSubmit = function(submitter) { if (submitter) { validateSubmitter(submitter, this) submitter.click() } else { submitter = document.createElement("input") submitter.type = "submit" submitter.hidden = true this.appendChild(submitter) submitter.click() this.removeChild(submitter) } } function validateSubmitter(submitter, form) { submitter instanceof HTMLElement || raise(TypeError, "parameter 1 is not of type 'HTMLElement'") submitter.type == "submit" || raise(TypeError, "The specified element is not a submit button") submitter.form == form || raise(DOMException, "The specified element is not owned by this form element", "NotFoundError") } function raise(errorConstructor, message, name) { throw new errorConstructor("Failed to execute 'requestSubmit' on 'HTMLFormElement': " + message + ".", name) } })(HTMLFormElement.prototype);