JQuery文本框值计算

时间:2011-10-19 09:20:21

标签: jquery

我是JQuery的新手,我正在寻找满足以下需求的脚本。

用户必须在文本框中输入一个数字输入:456(可以输入任意长度)该值必须更改为000000000000000456(长度必须为18,并在用户输入前添加零)。

例如:12必须更改为000000000000000012

145必须更改为000000000000000145

单击按钮时必须调用函数。 以下是摘录:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title></title>
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script> 
    $(document).ready(function () {
        $("#acb1").click(function () {
        });
    });
</script>
</head>
<body>
<form id="form1">
<div>
<input type="text" id="ac1" value=""/>
<input type="button" id="acb1" value="Search" />
</div>
</form>
 </body>
</html>

任何线索都会受到赞赏。

由于

5 个答案:

答案 0 :(得分:1)

function pad(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }

    return str;
}

alert(pad(145, 18));

答案 1 :(得分:0)

您可以使用JavaScript for循环在字符串前面增加零,直到variable.length === 18。告诉我你是否需要一个例子。 :)

以下是一个示例(使用Manuels函数):http://jsfiddle.net/BX5Xs/1/

答案 2 :(得分:0)

之前已经asked and answered了。您想知道如何在输入字段中创建零填充字符串。这是Peter Bailey提议的函数:

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number;
}

在您的情况下,您可以这样使用它:

$(document).ready(function () {
    $("#acb1").click(function () {
         var num = this.value;
         var padded_num = zeroFill(num, 18);
         alert('Zero padded number: ' + padded_num);   
    });
});

答案 3 :(得分:0)

$("#acb1").click(function () {
  var inp = $('#ac1').val();
  var limit = 18;
  var inpLen = inp.length;
  var res = '';
  for(var i=0;i<(limit-inpLen);i=i+1){
res = res + '0';
  }
  res = res + inp;
});
祝你好运;)

答案 4 :(得分:0)

试试这个

$(document).ready(function () {
    $("#acb1").click(function () {
        var len = $("#ac1").val().length;

        if (len < 18 && len > 0)
        {
            var temp = '';
            for (var i = 0; i < 18 - len; i++)
            {
                temp += '0';
            }
            temp +=$("#ac1").val();

            $("#ac1").val(temp);
        }
    });
});