我想在用户每次输入3位数字时自动列出数字。输入的数字应显示在 div
自动地
$("#lister").on("keyup", function() {
var mxlen = $(this).data("mxlen");
var input = $(this).val();
if (input.length == mxlen) { //if input==3
$('#num_list').append('<li>' + input + '</li>');
$(this).html(''); //clear input after appended
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="num_list"></div>
<input type="number" id="lister" data-mxlen="3" />
我的代码的问题是,它重复相同的数字,并且在追加后不清除输入。
1条答案
按热度按时间nlejzf6q1#
你的代码就快到了,你只需要使用
val('')
重置该值。还请注意,您可以通过使用
slice(0, mxlen)
快速键入时将值限制为3个字符,并将检查更改为==
到>=
出于同样的原因。最后要注意的一点是,诸如
-
或e
对于在type="number"
输入字段,但它们对于该字段返回的值无效。因此length
使用这些字符时,check将获得不一致的输出。根据您的用例,使用标准可能会更好
type="text"
检查并手动将输入限制为数值。