如果小于输入字段的最大长度,则在输入的数字的左侧添加零。

问题描述:

我有三个电话号码输入,每个电话号码长度分别为4,8,4。当达到输入字段的最大长度时,我通过jQuery处理鼠标的焦点,然后聚焦/跳到下一个字段。如果小于输入字段的最大长度,则在输入的数字的左侧添加零。

我也想做一个旁边的焦点来计算每个字段中的数字,如果它们小于maxlength,那么当我们回显输入的字段时,在左边附加零使其等于相应输入字段的最大长度。例如如果在第一次输入时某人只输入了两个数字,例如47,那么输出应该是,在回声之后在左侧附加两个零。

这里是我的HTML:

<form> 
<input type="text" name="area_code" id="area_code" maxlength="4" size="3" /> - 
<input type="text" name="number1" id="number1" maxlength="8" size="8" /> - 
<input type="text" name="number2" id="number2" maxlength="4" size="3" /> 
</form> 

这里是jQuery的

<script type="text/javascript" src="js/jquery.autotab-1.1b.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$('#area_code, #number1, #number2').autotab_magic().autotab_filter('numeric'); 
}); 
</script> 
+0

任何一个,但更prefferable是php – 2013-04-11 11:28:30

你有PHP和jQuery的标签上的问题,所以这里的两个:

PHP:str_pad

jQuery: 没有内置函数作为据我所知,你必须创建一个。这里有一个关于在javscript中执行的问题。 Adding extra zeros in front of a number using jQuery?接受的答案应该做的伎俩。

+0

str_pad()用于字符串我的意思是追加零到字符串,但什么我的情况是输入带数字的数字,所以它不会附加数字的零,所以任何数字的函数? – 2013-04-11 12:03:17

var num1 = $('#number1'); 
var diff1 = 0; 

if (num1.value.length < num1.attr('maxlength')) 
{ diff1 = num1.attr('maxlength') - num1.value.length; } 

for (var i = 0; i< diff1; i++) { num1.val = '0' + num1.val(); } 

你总是可以编写一个函数来为你做它:

$('#area_code, #number1, #number2').blur(function(){ 
    $(this).val(padMe($(this).val(),$(this).attr("maxlength"))); 
}); 

function padMe(str,length) 
{ 
    var diff = length-str.length; 
    return (diff>0) ? (new Array(diff+1).join("0") + str) : str; 
}