2013-04-11 90 views
0

我有三個電話號碼輸入,每個電話號碼長度分別爲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

回答

1

你有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

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(); } 
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; 
} 
相關問題