HTML看起来像这样:
<div>
<label class="sr-only" for="product">Product</label>
<input id="product" type="text" placeholder="Product" maxlength="7" autofocus>
<label class="sr-only" for="batch">Batch</label>
<input id="batch" type="text" placeholder="Batch" maxlength="5">
</div>
jQuery如下所示:
$('#product').on('keyup', function() {
let product = $(this).val().slice(0, 7);
let batch = $(this).val().slice(9, 14);
if ($(this).val() && $(this).val().length === 7) {
$(this).val(product);
$(this).next().focus().val(batch);
}
});
当我扫描条形码时,它将读取此字符串WXYZ519 -8012456789
。
我需要对该字符串进行切片,以使带有input
和id="product"
的{{1}}获得的值分别为id="batch"
和WXYZ519
,而没有连字符和空格在两者之间。
第一个输入确实获得了正确的值,但是我无法获得第二个输入来将正确的值切入其中。
有人可以告诉我我的代码为什么以及出什么问题吗?
答案 0 :(得分:0)
如果您想获得整个字符串的第二半,您的范围似乎是错误的。
如果您更改
$(this).val().slice(9, 14);
到
$(this).val().slice(9, $(this).val().length);
它将包含一个从9开始并在该字符串的结尾处结束的字符串。
我认为另一个更清洁,更不易出错的替代方法是:
let split = $(this).val().split(" -");
let product = split[0];
let batch = split[1];