我有2个文本框。当你离开它时,它总是应该包含4位数。当你离开时,它总是应该包含10位数字。
我需要一个javascript,其中一个文本框中的模糊应触发一个算法,该算法将计算刚刚模糊的文本框中的字符数量,如果文本框不包含特定的数字位数,则应添加x的数量数字前面的0(零),直到文本框中包含特定的数字位数。
我已经知道的是,我需要检查文本框上的.length,但之后的功能就是让我烦恼。
HTML
<asp:TextBox ID="txt1" runat="server" MaxLength="4"></asp:TextBox>
<asp:TextBox ID="txt2" runat="server" MaxLength="10"></asp:TextBox>
的Javascript
<script src="jquery-1.4.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var $reg = $('#txt1');
var $acc = $('#txt2');
$reg.blur(function () {
if($reg.length < 4)
{
var $miss = 4 - parseFloat($reg.length);
}
});
$acc.blur(function () {
if($acc.length < 10)
{
var $miss = 10 - parseFloat($acc.length);
}
});
});
</script>
答案 0 :(得分:2)
将它放在每个$ miss任务下面。
var padding = '';
for(var i = 0; i<$miss; i++) {
padding += '0';
}
$(this).val(padding + $(this).val());
答案 1 :(得分:2)
这是一个简单的替代方案:
$reg.blur( function() {
while( this.value.length < 4 )
{
this.value = '0' + this.value;
}
} );
在jsfiddle上看到行动here。
答案 2 :(得分:1)
创建一个字符串重复功能,用所需数量的前导零填充您的号码。
来自此主题的代码:Repeat String - Javascript
String.prototype.repeat = function(num) {
return new Array(isNaN(num)? 1 : ++num).join(this);
}
此外,您不需要将parseFloat用于length属性,无论如何都需要一个int值来计算。
把它放在一起:
$reg.blur(function () {
$reg.val("0".repeat(4 - $reg.val().length) + reg.val() + "");
});
代码未经测试,但应指向正确的方向。