不支持的浏览器上的html5必需属性

时间:2013-07-05 00:23:05

标签: jquery html5 required

我有一个Web应用程序,它经常使用HTML5 required属性。但是Safari和ie 8/9不支持此属性。是否有一个jQuery插件会强制不兼容的浏览器上的行为?

5 个答案:

答案 0 :(得分:7)

这没有任何插件(仅限JQuery):

<script>

    // fix for IE < 11
    if ($("<input />").prop("required") === undefined) {
        $(document).on("submit", function(e) {
            $(this)
                    .find("input, select, textarea")
                    .filter("[required]")
                    .filter(function() { return this.value == ''; })
                    .each(function() {
                        e.preventDefault();
                        $(this).css({ "border-color":"red" });
                        alert( $(this).prev('label').html() + " is required!");
                    });
        });

    }
</script>

答案 1 :(得分:4)

你可以简单地填充它......

if ($("<input />").prop("required") === undefined) {
    $(document).on("submit", function(event) {
         $(this)
           .find("input, select, textarea")
           .filter("[required]")
           .filter(function() { return this.value; })
           .each(function() {
               // Handle them.
           });
    });
}

答案 2 :(得分:2)

您可以使用h5validate,它完全符合您的需要。

<script>
$(document).ready(function () {
  $('form').h5Validate();
});
</script>

答案 3 :(得分:2)

我为此编写了一个非常简单的jQuery插件。它只是使用'required'属性为表单添加客户端验证。

https://github.com/garyv/jQuery-Validation-plugin

包含插件后,您可以在jQuery的文档就绪函数中调用validate(),或者在html正文的末尾调用。

<script>
  $(document).ready(function(){
    $('form').validate();
  });
</script>

答案 4 :(得分:-1)

发现了一种非常通用且轻量级(一度缩小)的引擎,可以跨浏览器工作,包括ie8!

http://posabsolute.github.io/jQuery-Validation-Engine/