Safari 不支持 HTML5 模式...下面的输入模式工作正常,但需要一个可行的回退。
<input type="password" required pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" name="password" id="password">
后备尝试...(来自 2011 年的另一个答案)
var input = document.getElementsByName('password')[0];
input.addEventListener('change', function() {
console.log('Is valid?', input.value.search(new RegExp(input.getAttribute('pattern'))) !== -1);
}, false);
最佳答案
问题在于您正在收听的事件。在这种情况下,事件 change
本质上与 blur
相同。
更改您监听keyup
或input
的事件:
input.addEventListener('input', function() {
console.log('Is valid?', input.value.search(new RegExp(input.getAttribute('pattern'))) !== -1);
}, false);
关于javascript - Safari 的 HTML5 模式后备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538353/