当我在输入中使用模式时,如下所示:
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))">
Run Code Online (Sandbox Code Playgroud)
我收到带有文字的弹出警告.如何轻松更改此文本?
voo*_*417 30
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" title="YOUR_WARNING_TEXT" >
Run Code Online (Sandbox Code Playgroud)
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" oninvalid="this.setCustomValidity('ERROR_TEXT')" oninput="this.setCustomValidity('')"/>
Run Code Online (Sandbox Code Playgroud)
试试这段代码,输入后更正清除...
附加title到模式警告中。请记住,警告会被翻译成浏览器语言,这可能会使英文字符串看起来很奇怪。
这是我发现完全替换警告的唯一方法:
<input type="text" required pattern="PATTERN" oninvalid="invalid" oninput="invalid">
Run Code Online (Sandbox Code Playgroud)
/**
* 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('')
}
}
Run Code Online (Sandbox Code Playgroud)
一旦表单被验证,警告就会不断弹出,直到值与模式匹配为止。如果input事件只是setCustomValidity('')按照大多数其他答案中的建议进行设置,则会返回默认警告。
| 归档时间: |
|
| 查看次数: |
18782 次 |
| 最近记录: |