зеркало из https://github.com/mozilla/pjs.git
Bug 623870 - Update the message in the invalid form popup when the error message changes. r=gavin a=jst
This commit is contained in:
Родитель
f0850500f2
Коммит
0bcd573d78
|
@ -860,6 +860,14 @@ const gFormSubmitObserver = {
|
||||||
function inputHandler(e) {
|
function inputHandler(e) {
|
||||||
if (e.originalTarget.validity.valid) {
|
if (e.originalTarget.validity.valid) {
|
||||||
gFormSubmitObserver.panel.hidePopup();
|
gFormSubmitObserver.panel.hidePopup();
|
||||||
|
} else {
|
||||||
|
// If the element is now invalid for a new reason, we should update the
|
||||||
|
// error message.
|
||||||
|
if (gFormSubmitObserver.panel.firstChild.textContent !=
|
||||||
|
e.originalTarget.validationMessage) {
|
||||||
|
gFormSubmitObserver.panel.firstChild.textContent =
|
||||||
|
e.originalTarget.validationMessage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
element.addEventListener("input", inputHandler, false);
|
element.addEventListener("input", inputHandler, false);
|
||||||
|
|
|
@ -396,7 +396,55 @@ function test9()
|
||||||
|
|
||||||
// Clean-up and next test.
|
// Clean-up and next test.
|
||||||
gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
|
gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
|
||||||
executeSoon(finish);
|
executeSoon(test10);
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
tab.linkedBrowser.addEventListener("load", function(aEvent) {
|
||||||
|
tab.linkedBrowser.removeEventListener("load", arguments.callee, true);
|
||||||
|
|
||||||
|
gBrowser.contentDocument.getElementById('s').click();
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
gBrowser.selectedTab = tab;
|
||||||
|
gBrowser.selectedTab.linkedBrowser.loadURI(uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* In this test, we check that the message is correctly updated when it changes.
|
||||||
|
*/
|
||||||
|
function test10()
|
||||||
|
{
|
||||||
|
let uri = "data:text/html,<iframe name='t'></iframe><form target='t' action='data:text/html,'><input type='email' required id='i'><input id='s' type='submit'></form>";
|
||||||
|
let tab = gBrowser.addTab();
|
||||||
|
|
||||||
|
gInvalidFormPopup.addEventListener("popupshown", function() {
|
||||||
|
gInvalidFormPopup.removeEventListener("popupshown", arguments.callee, false);
|
||||||
|
|
||||||
|
let doc = gBrowser.contentDocument;
|
||||||
|
let input = doc.getElementById('i');
|
||||||
|
is(doc.activeElement, input, "First invalid element should be focused");
|
||||||
|
|
||||||
|
checkPopupShow();
|
||||||
|
|
||||||
|
is(gInvalidFormPopup.firstChild.textContent, input.validationMessage,
|
||||||
|
"The panel should show the current validation message");
|
||||||
|
|
||||||
|
input.addEventListener('input', function() {
|
||||||
|
input.removeEventListener('input', arguments.callee, false);
|
||||||
|
|
||||||
|
executeSoon(function() {
|
||||||
|
// Now, the element suffers from another error, the message should have
|
||||||
|
// been updated.
|
||||||
|
is(gInvalidFormPopup.firstChild.textContent, input.validationMessage,
|
||||||
|
"The panel should show the current validation message");
|
||||||
|
|
||||||
|
// Clean-up and next test.
|
||||||
|
gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
|
||||||
|
executeSoon(finish);
|
||||||
|
});
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
EventUtils.synthesizeKey('f', {});
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
tab.linkedBrowser.addEventListener("load", function(aEvent) {
|
tab.linkedBrowser.addEventListener("load", function(aEvent) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче