Safari的HTML5模式倒退

HTML5 Pattern fallback for Safari

本文关键字:模式 HTML5 Safari      更新时间:2023-09-26

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);

问题在于您正在收听的事件。在这种情况下,事件changeblur本质上是一样的。

更改监听keyupinput的事件:

input.addEventListener('input', function() {
    console.log('Is valid?',  input.value.search(new RegExp(input.getAttribute('pattern'))) !== -1);
}, false);