我是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>
任何线索都会受到赞赏。
由于
答案 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);
}
});
});