0

我有三个电话号码输入,每个输入的长度分别为 4、8、4。当达到输入字段的最大长度时,我通过 jQuery 处理鼠标焦点,然后焦点/跳转到下一个字段。

如果每个字段中的数字小于最大长度,我还想做一个额外的焦点来计算它们,然后在左侧附加零以使其等于相应输入字段的最大长度,当我们回显输入的字段时。例如,如果在第一次输入中有人只输入了两个数字,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>
4

3 回答 3

1

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

PHP: str_pad

jQuery:据我所知,没有内置函数,所以你必须创建一个。这是一个关于在 javscript 中执行此操作的问题。 使用jQuery在数字前面添加额外的零?接受的答案应该可以解决问题。

于 2013-04-11T11:17:38.130 回答
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;
}
于 2013-04-11T11:23:27.767 回答
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(); } 
于 2013-04-11T11:21:44.137 回答