jquery - 使用 Modernizr 在 Firefox 中输入类型编号

标签 jquery modernizr

我需要让火狐支持输入数字。我四处搜寻并找到了 Modernizr 作为可能的解决方案。我怎样才能实现modernizr来在firefox中输入数字?我按照这些说明 http://net.tutsplus.com/tutorials/html-css-techniques/how-to-build-cross-browser-html5-forms/ 进行操作 但是,它在 Firefox 上显示错误:

TypeError: $.ui is undefined
[Break On This Error]   

keyCode = $.ui.keyCode,

ui.spinner.js (line 15)
TypeError: $input.spinner is not a function
[Break On This Error]   

step: $input.attr('step')

有没有更简单的方法在输入数字元素上实现现代化?

提前致谢

最佳答案

解决办法: 脚本:

$(document).ready(function(){
        if(!Modernizr.input.placeholder){ //placeholder
                makePlaceholders();
        }//if
        if(!Modernizr.input.autofocus){ //auto focus
                $("input[autofocus]").focus();
        }//if
        if(!Modernizr.inputtypes.number){ //number spinner
                var $numerics = $("input[type=number]");
                $numerics.each(function (){
                        var thisNum = $(this);
                        thisNum.spinner({
                                min: thisNum.attr("min"),
                                max: thisNum.attr("max"),
                                step: thisNum.attr("step")
                        });
                });
        }//if
        if(!Modernizr.inputtypes.date){ //date input
                var $dates = $("input[type=date]");
                $dates.each(function (){
                        var thisDate = $(this);
                        thisDate.datepicker({
                                minDate: thisDate.attr("min"),
                                maxDate: thisDate.attr("max"),
                                dateFormat: "yy-mm-dd"
                        });
                });
        }//if
});//document.ready

function makePlaceholders(){
        $inputs = $("input[type=text],input[type=email],input[type=tel],input[type=url]");
        $inputs.each(
                function(){
                        var $this = jQuery(this);
                        this.placeholderVal = $this.attr("placeholder");
                        $this.val(this.placeholderVal);
                }
        )//each
        .bind("focus", function(){
                var $this = jQuery(this);
                var val = $.trim($this.val());
                if(val == this.placeholderVal || val == ""){
                        $this.val("");
                }//if
        })//bind
        .bind("blur", function(){
                var $this = jQuery(this);
                var val = $.trim($this.val());
                if(val == this.placeholderVal || val == ""){
                        $this.val(this.placeholderVal);
                }//if
        });//bind
}//function
 </script>

HTML:

<input type="number" min="6" max="30" step="1" value ="6">

希望这对某人有帮助。

关于jquery - 使用 Modernizr 在 Firefox 中输入类型编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213983/

相关文章:

javascript - 使用带有选项卡和 Accordion 的 jQuery UI 时,如何显示所有可见的工具提示?

reactjs - 我如何在 React 中导入 Modernizr

javascript - Modernizr.load (Yepnope) 是否用于 <head>

javascript - 使用 gulp-modernizr 如何设置配置文件?

javascript - 将推送菜单更改为覆盖

css - 哪个 Modernizr css 类决定是否可以使用 translateX()?

jquery - css, jquery 问题

javascript - 如何清除所见即所得的 mathquill 编辑器?

jquery - 使用 jQuery 更新 XML 文档并执行 XSLT

javascript - 从屏幕上异步删除 JSON 对象