mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 1427542 - Fix reset a form can't clear -moz-ui-invalid after calling reportValidity. r=smaug
This commit is contained in:
parent
1d11facceb
commit
408eb5bda0
@ -579,6 +579,7 @@ HTMLFormElement::DoSubmitOrReset(WidgetEvent* aEvent,
|
||||
nsresult
|
||||
HTMLFormElement::DoReset()
|
||||
{
|
||||
mEverTriedInvalidSubmit = false;
|
||||
// JBK walk the elements[] array instead of form frame controls - bug 34297
|
||||
uint32_t numElements = GetElementCount();
|
||||
for (uint32_t elementX = 0; elementX < numElements; ++elementX) {
|
||||
|
@ -119,6 +119,13 @@ function checkTextareaRequiredValidity()
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
SpecialPowers.wrap(element).value = '';
|
||||
element.form.reportValidity();
|
||||
checkSufferingFromBeingMissing(element, true);
|
||||
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
// TODO: for the moment, a textarea outside of a document is mutable.
|
||||
SpecialPowers.wrap(element).value = ''; // To make -moz-ui-valid apply.
|
||||
element.required = false;
|
||||
@ -191,6 +198,13 @@ function checkInputRequiredValidity(type)
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
SpecialPowers.wrap(element).value = '';
|
||||
element.form.reportValidity();
|
||||
checkSufferingFromBeingMissing(element, true);
|
||||
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
element.required = true;
|
||||
SpecialPowers.wrap(element).value = ''; // To make :-moz-ui-valid apply.
|
||||
checkSufferingFromBeingMissing(element, true);
|
||||
@ -228,6 +242,14 @@ function checkInputRequiredValidityForCheckbox()
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
element.required = true;
|
||||
element.checked = false;
|
||||
element.form.reportValidity();
|
||||
checkSufferingFromBeingMissing(element, true);
|
||||
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
element.required = true;
|
||||
element.checked = false;
|
||||
document.forms[0].removeChild(element);
|
||||
@ -304,6 +326,14 @@ function checkInputRequiredValidityForRadio()
|
||||
element2.form.reset();
|
||||
checkSufferingFromBeingMissing(element2, false);
|
||||
|
||||
element2.required = true;
|
||||
element2.checked = false;
|
||||
element2.form.reportValidity();
|
||||
checkSufferingFromBeingMissing(element2, true);
|
||||
|
||||
element2.form.reset();
|
||||
checkSufferingFromBeingMissing(element2, false);
|
||||
|
||||
element2.required = true;
|
||||
element2.checked = false;
|
||||
document.forms[0].removeChild(element2);
|
||||
@ -341,6 +371,14 @@ function checkInputRequiredValidityForFile()
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
element.required = true;
|
||||
SpecialPowers.wrap(element).value = '';
|
||||
element.form.reportValidity();
|
||||
checkSufferingFromBeingMissing(element, true);
|
||||
|
||||
element.form.reset();
|
||||
checkSufferingFromBeingMissing(element, false);
|
||||
|
||||
element.required = true;
|
||||
SpecialPowers.wrap(element).value = '';
|
||||
document.forms[0].removeChild(element);
|
||||
|
Loading…
Reference in New Issue
Block a user