我试图强制输入[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;
}
});