Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用WebShim Polyfill库时,我可以访问元素的默认validationMessage吗?_Validation_Webshim - Fatal编程技术网

使用WebShim Polyfill库时,我可以访问元素的默认validationMessage吗?

使用WebShim Polyfill库时,我可以访问元素的默认validationMessage吗?,validation,webshim,Validation,Webshim,使用HTML5验证API时,可以截获错误、访问错误消息并以不同方式呈现 当使用WebShim Polyfill时,我希望它能以同样的方式工作,而不必访问customValidationMessage属性 是否有一种方法可以配置WebShim,以便我们可以编写一致的代码来拦截这些错误消息,如下所示 $(“输入”)。打开(“无效”,函数(evt){ evt.preventDefault(); 警报(evt.currentTarget.validationMessage); }); 。。。我希望这段代

使用HTML5验证API时,可以截获错误、访问错误消息并以不同方式呈现

当使用WebShim Polyfill时,我希望它能以同样的方式工作,而不必访问customValidationMessage属性

是否有一种方法可以配置WebShim,以便我们可以编写一致的代码来拦截这些错误消息,如下所示

$(“输入”)。打开(“无效”,函数(evt){
evt.preventDefault();
警报(evt.currentTarget.validationMessage);
});

。。。我希望这段代码能在Polyfill中工作,也许我误解了它的设置或其他什么

我想这样做的原因是,我可以抓取所有无效字段,并在一个块中显示错误,而不是在每个字段旁边

谢谢,
尼克是的,这是可能的。如果设置正确,只需将调用更改为validationMessage即可。Webshims总是通过jQueryAPI修复元素,而不是DOM元素本身。这意味着你总是

您还可以使用eventdelegation:

$(function(){
    $(document).on("invalid", function(evt) {
        var message = $.prop(evt.target, "validationMessage");
        if(message){
            evt.preventDefault();
            alert(message);
        }
    });
});
注:

  • invalid的Eventdelegation是通过事件捕获完成的(jQuery通常不使用)。因此,您必须等待直到加载polyfill。(通常情况下,jQuery的就绪事件会延迟到那时。)

  • 我检查是否存在validationMessage,尽管存在无效事件。原因如下:规范发生了更改,现在表单元素上也触发了无效事件。这是目前唯一一个不稳定版本的webshims中的polyfilled,并且只适用于无法使用的浏览器(IE<12,Safari<8…)

  • $(function(){
        $(document).on("invalid", function(evt) {
            var message = $.prop(evt.target, "validationMessage");
            if(message){
                evt.preventDefault();
                alert(message);
            }
        });
    });