Skip to content

Commit 01cb9ff

Browse files
committed
Add report validity facade method
`setCustomValidity`s error message is shown only when `reportValidity` is called afterwards. See https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setCustomValidity for example.
1 parent 06e386f commit 01cb9ff

9 files changed

+36
-0
lines changed

api-reports/2_12.txt

+7
Original file line numberDiff line numberDiff line change
@@ -3492,6 +3492,7 @@ HTMLButtonElement[JC] def removeEventListener[T <: Event](`type`: String, listen
34923492
HTMLButtonElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
34933493
HTMLButtonElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
34943494
HTMLButtonElement[JC] def replaceChildren(nodes: Node | String*): Unit
3495+
HTMLButtonElement[JC] def reportValidity(): Boolean
34953496
HTMLButtonElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
34963497
HTMLButtonElement[JC] def requestPointerLock(): Unit
34973498
HTMLButtonElement[JC] def scrollHeight: Int
@@ -5094,6 +5095,7 @@ HTMLFieldSetElement[JC] def removeEventListener[T <: Event](`type`: String, list
50945095
HTMLFieldSetElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
50955096
HTMLFieldSetElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
50965097
HTMLFieldSetElement[JC] def replaceChildren(nodes: Node | String*): Unit
5098+
HTMLFieldSetElement[JC] def reportValidity(): Boolean
50975099
HTMLFieldSetElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
50985100
HTMLFieldSetElement[JC] def requestPointerLock(): Unit
50995101
HTMLFieldSetElement[JC] def scrollHeight: Int
@@ -5313,6 +5315,7 @@ HTMLFormElement[JC] def removeEventListener[T <: Event](`type`: String, listener
53135315
HTMLFormElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
53145316
HTMLFormElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
53155317
HTMLFormElement[JC] def replaceChildren(nodes: Node | String*): Unit
5318+
HTMLFormElement[JC] def reportValidity(): Boolean
53165319
HTMLFormElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
53175320
HTMLFormElement[JC] def requestPointerLock(): Unit
53185321
HTMLFormElement[JC] def reset(): Unit
@@ -6745,6 +6748,7 @@ HTMLInputElement[JC] def removeEventListener[T <: Event](`type`: String, listene
67456748
HTMLInputElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
67466749
HTMLInputElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
67476750
HTMLInputElement[JC] def replaceChildren(nodes: Node | String*): Unit
6751+
HTMLInputElement[JC] def reportValidity(): Boolean
67486752
HTMLInputElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
67496753
HTMLInputElement[JC] def requestPointerLock(): Unit
67506754
HTMLInputElement[JC] var required: Boolean
@@ -9003,6 +9007,7 @@ HTMLObjectElement[JC] def removeEventListener[T <: Event](`type`: String, listen
90039007
HTMLObjectElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
90049008
HTMLObjectElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
90059009
HTMLObjectElement[JC] def replaceChildren(nodes: Node | String*): Unit
9010+
HTMLObjectElement[JC] def reportValidity(): Boolean
90069011
HTMLObjectElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
90079012
HTMLObjectElement[JC] def requestPointerLock(): Unit
90089013
HTMLObjectElement[JC] def scrollHeight: Int
@@ -10827,6 +10832,7 @@ HTMLSelectElement[JC] def removeEventListener[T <: Event](`type`: String, listen
1082710832
HTMLSelectElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1082810833
HTMLSelectElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
1082910834
HTMLSelectElement[JC] def replaceChildren(nodes: Node | String*): Unit
10835+
HTMLSelectElement[JC] def reportValidity(): Boolean
1083010836
HTMLSelectElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
1083110837
HTMLSelectElement[JC] def requestPointerLock(): Unit
1083210838
HTMLSelectElement[JC] var required: Boolean
@@ -12857,6 +12863,7 @@ HTMLTextAreaElement[JC] def removeEventListener[T <: Event](`type`: String, list
1285712863
HTMLTextAreaElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1285812864
HTMLTextAreaElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
1285912865
HTMLTextAreaElement[JC] def replaceChildren(nodes: Node | String*): Unit
12866+
HTMLTextAreaElement[JC] def reportValidity(): Boolean
1286012867
HTMLTextAreaElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
1286112868
HTMLTextAreaElement[JC] def requestPointerLock(): Unit
1286212869
HTMLTextAreaElement[JC] var required: Boolean

api-reports/2_13.txt

+7
Original file line numberDiff line numberDiff line change
@@ -3492,6 +3492,7 @@ HTMLButtonElement[JC] def removeEventListener[T <: Event](`type`: String, listen
34923492
HTMLButtonElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
34933493
HTMLButtonElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
34943494
HTMLButtonElement[JC] def replaceChildren(nodes: Node | String*): Unit
3495+
HTMLButtonElement[JC] def reportValidity(): Boolean
34953496
HTMLButtonElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
34963497
HTMLButtonElement[JC] def requestPointerLock(): Unit
34973498
HTMLButtonElement[JC] def scrollHeight: Int
@@ -5094,6 +5095,7 @@ HTMLFieldSetElement[JC] def removeEventListener[T <: Event](`type`: String, list
50945095
HTMLFieldSetElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
50955096
HTMLFieldSetElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
50965097
HTMLFieldSetElement[JC] def replaceChildren(nodes: Node | String*): Unit
5098+
HTMLFieldSetElement[JC] def reportValidity(): Boolean
50975099
HTMLFieldSetElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
50985100
HTMLFieldSetElement[JC] def requestPointerLock(): Unit
50995101
HTMLFieldSetElement[JC] def scrollHeight: Int
@@ -5313,6 +5315,7 @@ HTMLFormElement[JC] def removeEventListener[T <: Event](`type`: String, listener
53135315
HTMLFormElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
53145316
HTMLFormElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
53155317
HTMLFormElement[JC] def replaceChildren(nodes: Node | String*): Unit
5318+
HTMLFormElement[JC] def reportValidity(): Boolean
53165319
HTMLFormElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
53175320
HTMLFormElement[JC] def requestPointerLock(): Unit
53185321
HTMLFormElement[JC] def reset(): Unit
@@ -6745,6 +6748,7 @@ HTMLInputElement[JC] def removeEventListener[T <: Event](`type`: String, listene
67456748
HTMLInputElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
67466749
HTMLInputElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
67476750
HTMLInputElement[JC] def replaceChildren(nodes: Node | String*): Unit
6751+
HTMLInputElement[JC] def reportValidity(): Boolean
67486752
HTMLInputElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
67496753
HTMLInputElement[JC] def requestPointerLock(): Unit
67506754
HTMLInputElement[JC] var required: Boolean
@@ -9003,6 +9007,7 @@ HTMLObjectElement[JC] def removeEventListener[T <: Event](`type`: String, listen
90039007
HTMLObjectElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
90049008
HTMLObjectElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
90059009
HTMLObjectElement[JC] def replaceChildren(nodes: Node | String*): Unit
9010+
HTMLObjectElement[JC] def reportValidity(): Boolean
90069011
HTMLObjectElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
90079012
HTMLObjectElement[JC] def requestPointerLock(): Unit
90089013
HTMLObjectElement[JC] def scrollHeight: Int
@@ -10827,6 +10832,7 @@ HTMLSelectElement[JC] def removeEventListener[T <: Event](`type`: String, listen
1082710832
HTMLSelectElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1082810833
HTMLSelectElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
1082910834
HTMLSelectElement[JC] def replaceChildren(nodes: Node | String*): Unit
10835+
HTMLSelectElement[JC] def reportValidity(): Boolean
1083010836
HTMLSelectElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
1083110837
HTMLSelectElement[JC] def requestPointerLock(): Unit
1083210838
HTMLSelectElement[JC] var required: Boolean
@@ -12857,6 +12863,7 @@ HTMLTextAreaElement[JC] def removeEventListener[T <: Event](`type`: String, list
1285712863
HTMLTextAreaElement[JC] def removeEventListener[T <: Event](`type`: String, listener: js.Function1[T, _], useCapture: Boolean?): Unit
1285812864
HTMLTextAreaElement[JC] def replaceChild(newChild: Node, oldChild: Node): Node
1285912865
HTMLTextAreaElement[JC] def replaceChildren(nodes: Node | String*): Unit
12866+
HTMLTextAreaElement[JC] def reportValidity(): Boolean
1286012867
HTMLTextAreaElement[JC] def requestFullscreen(options: FullscreenOptions?): js.Promise[Unit]
1286112868
HTMLTextAreaElement[JC] def requestPointerLock(): Unit
1286212869
HTMLTextAreaElement[JC] var required: Boolean

dom/src/main/scala/org/scalajs/dom/HTMLButtonElement.scala

+2
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,6 @@ abstract class HTMLButtonElement extends HTMLElement {
7676
def checkValidity(): Boolean = js.native
7777

7878
def setCustomValidity(error: String): Unit = js.native
79+
80+
def reportValidity(): Boolean = js.native
7981
}

dom/src/main/scala/org/scalajs/dom/HTMLFieldSetElement.scala

+2
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,6 @@ abstract class HTMLFieldSetElement extends HTMLElement {
4444
* suffering from a custom validity error, and does not validate.
4545
*/
4646
def setCustomValidity(error: String): Unit = js.native
47+
48+
def reportValidity(): Boolean = js.native
4749
}

dom/src/main/scala/org/scalajs/dom/HTMLFormElement.scala

+6
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,10 @@ abstract class HTMLFormElement extends HTMLElement {
8080
var noValidate: Boolean = js.native
8181

8282
def checkValidity(): Boolean = js.native
83+
84+
/** The reportValidity() method returns true if the element's child controls satisfy their validation constraints.
85+
* When false is returned, cancelable invalid events are fired for each invalid child and validation problems are
86+
* reported to the user.
87+
*/
88+
def reportValidity(): Boolean = js.native
8389
}

dom/src/main/scala/org/scalajs/dom/HTMLInputElement.scala

+6
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,10 @@ abstract class HTMLInputElement extends HTMLElement {
237237
* suffering from a custom validity error, and does not validate.
238238
*/
239239
def setCustomValidity(error: String): Unit = js.native
240+
241+
/** The reportValidity() method performs the same validity checking steps as the checkValidity() method. If the value
242+
* is invalid, this method also fires the invalid event on the element, and (if the event isn't canceled) reports the
243+
* problem to the user.
244+
*/
245+
def reportValidity(): Boolean = js.native
240246
}

dom/src/main/scala/org/scalajs/dom/HTMLObjectElement.scala

+2
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,6 @@ abstract class HTMLObjectElement extends HTMLElement with GetSVGDocument {
6868
* suffering from a custom validity error, and does not validate.
6969
*/
7070
def setCustomValidity(error: String): Unit = js.native
71+
72+
def reportValidity(): Boolean = js.native
7173
}

dom/src/main/scala/org/scalajs/dom/HTMLSelectElement.scala

+2
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,6 @@ abstract class HTMLSelectElement extends HTMLElement {
9595
def checkValidity(): Boolean = js.native
9696

9797
def setCustomValidity(error: String): Unit = js.native
98+
99+
def reportValidity(): Boolean = js.native
98100
}

dom/src/main/scala/org/scalajs/dom/HTMLTextAreaElement.scala

+2
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,6 @@ abstract class HTMLTextAreaElement extends HTMLElement {
109109
* suffering from a custom validity error, and does not validate.
110110
*/
111111
def setCustomValidity(error: String): Unit = js.native
112+
113+
def reportValidity(): Boolean = js.native
112114
}

0 commit comments

Comments
 (0)