This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
The setCustomValidity() method of the HTMLOutputElement interface sets the custom validity message for the <output> element. Use the empty string to indicate that the element does not have a custom validity error.
The <output> element is not a candidate for constraint validation. The reportValidity() method will not cause the custom error message to be displayed to the user, but does set the customError property of the element's ValidityState object to true and the valid property to false.
setCustomValidity(string)
stringThe string containing the error message. The empty string removes any custom validity errors.
None (undefined).
In this example, if the <output>'s value is not a non-zero number, we set a custom error message. If it is a number, we set the custom error to an empty string:
const cart = document.getElementById("cart-form");
const total = cart.elements("total");
if (parseFloat(total.value)) {
errorOutput.setCustomValidity("");
} else {
errorOutput.setCustomValidity("There is an error");
}
| Specification |
|---|
| HTML> # dom-cva-setcustomvalidity-dev> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
setCustomValidity |
9This method only updates the validation error popup, not the tooltip that appears when hovering the mouse over the element, see bug 41380670. |
14 | 4 | ≤12.1 | 5.1 | 18This method only updates the validation error popup, not the tooltip that appears when hovering the mouse over the element, see bug 41380670. |
4 | ≤12.1 | 5 | 1.0This method only updates the validation error popup, not the tooltip that appears when hovering the mouse over the element, see bug 41380670. |
3 | 5 |
<output>HTMLOutputElementHTMLOutputElement.validityHTMLOutputElement.checkValidity()HTMLOutputElement.reportValidity():valid and :invalid pseudo-classes
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLOutputElement/setCustomValidity