【发布时间】:2018-03-02 11:58:36
【问题描述】:
我有一个最大长度为 13 个数字的输入。 每次您输入一个数字,它都会显示在网站上。
这工作正常,但如果输入的长度不是 13 个数字,我需要为 13 个数字中的每一个设置一个默认值 0。
所以如果你已经输入了1234,输出应该是这样的:1234000000000
只需将所有缺失的数字替换为 0
如果输入完全为空,则使用if (input == '')
但我总是需要 13 个数字,所以我必须用 0 填充输入
$('#input').keyup(function() {
var input = $(this).val();
if (input == '') {
input = '0000000000000';
}
var i = 0;
while (i < 13) {
var digit = input.charAt(i);
$('.inp' + i + ' > .digit').html(digit);
i++;
}
var fdin = input.charAt(0);
// getStructure(fdin);
});
div {display: inline-block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input" type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength="13"></input>
<div class="inp0"><span class="digit">0</span></div>
<div class="inp1"><span class="digit">0</span></div>
<div class="inp2"><span class="digit">0</span></div>
<div class="inp3"><span class="digit">0</span></div>
<div class="inp4"><span class="digit">0</span></div>
<div class="inp5"><span class="digit">0</span></div>
<div class="inp6"><span class="digit">0</span></div>
<div class="inp7"><span class="digit">0</span></div>
<div class="inp8"><span class="digit">0</span></div>
<div class="inp9"><span class="digit">0</span></div>
<div class="inp10"><span class="digit">0</span></div>
<div class="inp11"><span class="digit">0</span></div>
<div class="inp12"><span class="digit">0</span></div>
编辑:用它制作了this
【问题讨论】:
-
请用必要的 html 更新我为你制作的 sn-p - 例如
class="inpX digit"还有为什么有内联代码和 jQuery 事件处理? -
用0填充做
function(num) { return (num+"0000000000000").slice(0,13) }
标签: javascript jquery input numbers fill