繁体   English   中英

不支持的HTML5元素和属性的JavaScript解决方法

[英]JavaScript workaround for not supported HTML5 elements and attributes

我正在使用Modernizr来检测浏览器中不受支持的HTML5元素和属性。 如果不支持元素/属性,我想用jQuery编写一种快速的解决方法。

目前,我在输入元素的“ required”属性中绊了一下。 我的想法是“检测”关联的表单元素并钩住表单的jQuery .submit()事件。 但是怎么做呢?

为了了解自己,这里是一个示例代码,我如何使用输入元素修复“占位符”属性:

if(Modernizr.input.placeholder == false) {
    alert('input placeholder not exists, perform a workaround...');
    $('[placeholder]').each(function() {
        var input = $(this);
        var placeholder = input.attr('placeholder');
        input.bind('focus', function() {
            if(this.value == placeholder) {
                this.value = '';
                $(this).removeClass('mzr-no-placeholder');
            }
        }).bind('blur', function() {
            if(this.value == '') {
                this.value = placeholder;
                $(this).addClass('mzr-no-placeholder');
            }
        });
        if(!this.value.length) {
            this.value = placeholder;
            $(this).addClass('mzr-no-placeholder');
        }
    });
}
else {
    alert('input placeholder exists.');
}

这是解决方案

感谢greut。

if(Modernizr.input.required == false) {
    alert('Tag input required not exists, perform a workaround...');
    $('form').submit(function() {
        var requirementsOK = true;
        $('[required]', this).each(function() {
            if(!this.value.length) {
                $(this).addClass('mzr-no-required');
                requirementsOK = false;
            }
            else {
                $(this).removeClass('mzr-no-required');
            }
        });
        return requirementsOK;
    });
}
else {
    alert('Tag input required exists.');
}

这里有一个关于如何开始的提示:

if (Modernizer.input.required === false) {
    $('form').submit(function() {
         $('[required]', this).each(function() {
              if (!$(this).val()) {
                  alert('derp!');
                  return false;
              }
         }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM