1

我想为 HTML5 输入元素(或 polyfill 不支持的元素)创建自定义有效性规则。为了尽可能地融入浏览器的本机验证过程,我想出了覆盖输入元素的checkValidity方法以将逻辑挂钩:

/* input_element is the DOM element to enhance: */
var original_check = input_element.checkValidity.bind(input_element);

input_element.checkValidity = function() {
    var original_validity = original_check();

    /* run our own check only, if the original check went well */
    if (original_validity && ! custom_validity_checker(input_element)) {
        trigger_event('invalid', input_element);
        return false;
    }

    return original_validity;
};

这种方法有没有我没有预料到的问题?

据我所知,该解决方案对于被多次调用是稳健的,因为有效性检查函数将被堆叠并一个接一个地调用。

但是是否还有其他情况,checkValidity()不是本机方法会咬我?

4

0 回答 0