我有三个输入电话号码,每个电话号码的长度分别为4,8,4。当达到输入字段的最大长度然后聚焦/跳转到下一个字段时,我通过jQuery处理鼠标的焦点。
我还想做一个旁边焦点来计算每个字段中的数字,如果它们小于maxlength,则在左侧添加零,使其等于我们回显输入字段时各个输入字段的最大长度。例如,如果在第一个输入中有人只输入两个数字,如47
,那么输出应该是0047
,在回声后左侧有两个附加的零。
这是我的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 :(得分:1)
您已经在问题上获得了PHP和jQuery标签,所以这两者都是:
PHP:str_pad
jQuery: 据我所知,没有内置功能,所以你必须创建一个。这是一个关于在javscript中执行此操作的问题。 Adding extra zeros in front of a number using jQuery?接受的答案应该可以解决问题。
答案 1 :(得分:0)
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(); }
答案 2 :(得分:0)
您总是可以编写一个函数来为您完成:
$('#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;
}