зеркало из https://github.com/mozilla/gecko-dev.git
Bug 704879 - (6/6) Show form validation message when invalid element is focused. r=lucasr
This commit is contained in:
Родитель
3fe9ff3ff7
Коммит
202b1975a4
|
@ -2846,6 +2846,8 @@ var FormAssistant = {
|
|||
Services.obs.addObserver(this, "FormAssist:Hidden", false);
|
||||
Services.obs.addObserver(this, "invalidformsubmit", false);
|
||||
|
||||
// We need to use a capturing listener for focus events
|
||||
BrowserApp.deck.addEventListener("focus", this, true);
|
||||
BrowserApp.deck.addEventListener("input", this, false);
|
||||
BrowserApp.deck.addEventListener("pageshow", this, false);
|
||||
},
|
||||
|
@ -2855,6 +2857,7 @@ var FormAssistant = {
|
|||
Services.obs.removeObserver(this, "FormAssist:Hidden");
|
||||
Services.obs.removeObserver(this, "invalidformsubmit");
|
||||
|
||||
BrowserApp.deck.removeEventListener("focus", this);
|
||||
BrowserApp.deck.removeEventListener("input", this);
|
||||
BrowserApp.deck.removeEventListener("pageshow", this);
|
||||
},
|
||||
|
@ -2887,15 +2890,20 @@ var FormAssistant = {
|
|||
|
||||
this._invalidSubmit = true;
|
||||
|
||||
// Our focus listener will show the element's validation message
|
||||
let currentElement = aInvalidElements.queryElementAt(0, Ci.nsISupports);
|
||||
if (this._showValidationMessage(currentElement))
|
||||
currentElement.focus();
|
||||
currentElement.focus();
|
||||
},
|
||||
|
||||
handleEvent: function(aEvent) {
|
||||
switch (aEvent.type) {
|
||||
case "input":
|
||||
case "focus":
|
||||
let currentElement = aEvent.target;
|
||||
this._showValidationMessage(currentElement);
|
||||
break;
|
||||
|
||||
case "input":
|
||||
currentElement = aEvent.target;
|
||||
|
||||
// Since we can only show one popup at a time, prioritze autocomplete
|
||||
// suggestions over a form validation message
|
||||
|
|
Загрузка…
Ссылка в новой задаче