JS - 强制输入数字前导零

时间:2014-12-09 21:02:54

标签: javascript jquery firefox input numbers

我试图强制输入[type =“number”]元素,只要值小于10就添加一个前导零。这是一个非常简单的脚本

jQuery('input[type="number"]').on('change', function() {
    if(jQuery(this).val() < 10) {
        jQuery(this).val('0'+jQuery(this).val());
    }
});

这适用于chrome,但firefox会从数字输入中删除每个前导零。我知道我可以使用带有模式的文本或电话类型输入,但对于我的应用来说,它有一些“+”和“ - ”箭头分别添加和减少1是很重要的。

有没有办法强制firefox添加前导零?

修改

显然你不能改变firefox对这种输入的行为......所以我把页面中的那些更改为<input type="tel" pattern="[0-9]*" max="59" name="minutes">

并添加了这一点JS

function add_leading_zero(element) {
    if(jQuery(element).val() < 10)
        jQuery(element).val('0'+jQuery(element).val());
}

jQuery('input[type="tel"]').keydown(function(e) {
    var max = jQuery(this).attr('max');
    var val = parseInt(jQuery(this).val());
    switch(e.keyCode) {
        case 38: // arrow up
            if(val < max) {
                jQuery(this).val(val+1);
                add_leading_zero(this);
            }
        break;
        case 40: // arrow down
            if(val > 0) {
                jQuery(this).val(val-1);
                add_leading_zero(this);
            }
        break
        default:
        break;
    }
});

0 个答案:

没有答案