javascript - Safari 的 HTML5 模式后备

标签 javascript jquery html

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 相同。

更改您监听keyupinput的事件:

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/

相关文章:

javascript - onLoad 事件在图像完成加载之前触发

javascript - CKEditor 图标垂直

javascript - 正在向 url 添加搜索条件,但无法返回

javascript - 如何用jQuery替换一些带有 "x"的字符?

javascript - 通过 Link 将 props 从带有 fetch 的容器传递到一个元素

javascript - 无法使用 View 路由器解析异步组件渲染

javascript - 触发点击 div,这样它就会在 pagedown 和 pageup 上滚动

javascript - Safari MediaSource 永远不会在后台选项卡中打开

javascript - 标题在窗口打开时淡入淡出

html - 是否可以使 Font Awesome 图标大于 'fa-5x' ?