Javascript算法添加数字到文本框

Javascript algorithm adding numbers to textbox

本文关键字:文本 数字 算法 添加 Javascript      更新时间:2023-09-26

我有两个文本框。当你离开它的时候,它应该一直包含4位数字。当你离开它时,它必须始终包含10个数字。

我需要一个javascript,从一个文本框模糊应该触发一个算法,该算法应计算刚刚模糊的文本框中的字符数量,如果文本框不包含特定数量的数字,它应该在数字前面添加x的0(零),直到文本框包含特定数量的数字。

我已经知道的是,我需要检查文本框上的。length,但之后的功能是什么困扰我。

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

这里有一个简单的替代方法:

$reg.blur( function() {
    while( this.value.length < 4 )
    {
        this.value = '0' + this.value;
    }
} );

把它放在每个$miss赋值的下面。

var padding = '';
for(var i = 0; i<$miss; i++) {
  padding += '0';
}
$(this).val(padding + $(this).val());

创建一个字符串重复函数,用所需的前导零数填充您的数字。

来自这个线程的代码:Repeat String - Javascript

String.prototype.repeat = function(num) {
    return new Array(isNaN(num)? 1 : ++num).join(this);
    }

同样,你不需要对长度属性使用parseFloat,你需要一个int值来计算。

把它放在一起:

$reg.blur(function () {
       $reg.val("0".repeat(4 - $reg.val().length) + reg.val() + "");
});

未经测试的代码,但应该为您指明正确的方向。