我从这些链接中得到了一些成功的答案。
https://stackoverflow.com/a/68485231/1620626
https://stackoverflow.com/a/68489529/1620626
现在我想把它们放在一起。但在将数字切片并放入div中时似乎存在一些问题。以下是我的工作:
$('#mx_input,#num_list').hide();
$('.accordion-header').on('click', function() {
var tabID = $(this).find('button').data('mx');
$('#mx_input').show();
$('#mx_input').attr('max', tabID); //assign max=data-mxlen
});
$("#mx_input").on("input", function() {
$('#num_list').show();
let $el = $(this);
var mxlen = $el.attr("max");
var input = $el.val();
if (input.length >= mxlen) {
$('#num_list').append('<li>' + input.slice(0, mxlen) + '</li>');
$el.val('');
}
});
ul#num_list {
border: solid 1px red;
border-radius: 5px;
padding: 5px;
}
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" data-mx="999">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
body 1
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" data-mx="99">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
<div class="accordion-body">
body 2
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingThree">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree" data-mx="9">
Accordion Item #3
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
<div class="accordion-body">
body 3
</div>
</div>
</div>
</div>
<input type="number" name="mxlen" min="0" max="" id="mx_input" />
<ul id="num_list"></ul>
问题是:
数字不是标准上期望的切片 if (input.length >= mxlen) {
作为(1)中的数字,未切片。那就不 append
在目的地分区。
以下是您可以轻松编辑的链接:https://jsfiddle.net/c8jb1hkx/
1条答案
按热度按时间46scxncf1#
您的代码按预期工作。在你的
HTML
您已将“最大长度”设置为9
,99
,999
. 如果您想让它成为最大数,那么您需要附加需要更改最大长度的列表1
,2
及3
分别在你的HTML
. 也转换mxlen
到number
在比较之前。JSFIDLE
或更新代码以比较输入长度和数据长度-
JSFIDLE