如果小于输入字段的最大长度,则在输入的数字的左侧添加零。
问题描述:
我有三个电话号码输入,每个电话号码长度分别为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>
答
你有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;
}
任何一个,但更prefferable是php – 2013-04-11 11:28:30