当我在这样的输入中使用模式时:
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))">
我收到带有文本的弹出警告。如何轻松更改此文本?
当我在这样的输入中使用模式时:
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))">
我收到带有文本的弹出警告。如何轻松更改此文本?
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" title="YOUR_WARNING_TEXT" >
显示的文本可以在标签的title
属性中定义。input
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" oninvalid="this.setCustomValidity('ERROR_TEXT')" oninput="this.setCustomValidity('')"/>
试试这个代码,输入后更正以清除...
这个问题在过去已经得到了回答。请参阅以下 URL 以获得答案:HTML5 表单必需属性。设置自定义验证消息?
title
附加到模式警告中。请记住,警告会被翻译成浏览器语言,这会使英文字符串看起来很奇怪。
这是我发现完全替换警告的唯一方法:
<input type="text" required pattern="PATTERN" oninvalid="invalid" oninput="invalid">
/**
* Shows a custom validity message
* @param e - event
*/
function invalid(e) {
if (!/PATTERN/.test(e.target.value)) { // somehow validity.valid returns a wrong value
e.target.setCustomValidity('INVALID')
} else {
e.target.setCustomValidity('')
}
}
验证表单后,警告会不断弹出,直到值与模式匹配。如果input
事件只是setCustomValidity('')
按照大多数其他答案中的建议进行设置,则会返回默认警告。