我想为HTML5输入元素(或polyfill不支持的元素)创建自定义有效性规则。为了尽可能地融入浏览器的本机验证过程,我想出了覆盖输入元素'/* 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()
这种方法有什么问题,我没想到?
据我所知,解决方案很容易被多次调用,因为有效性检查功能将被堆叠并一个接一个地调用。
但是还有其他情况,{{1}}不是本地方法会让我反感吗?