【发布时间】:2021-11-16 23:56:50
【问题描述】:
一旦满足 maxlength,我试图将输入字段选项卡切换到下一个字段,但我不断收到错误 Failed to execute 'querySelector' on 'Document': 'name=2' is not a valid selector.。我已经阅读了mozialla's explanation of a querySelector 并尝试使用元素id 来聚焦(),但这会产生相同的错误。我想我不明白如何正确制作选择器以传递给 querySelector。
我的输入字段只显示 2 我有 3:
<Input
onChange={dateChange("month")}
value={date.month}
id="1"
maxLength={2}
type="number"
/>
<span className="sep">/</span>
<Input
onChange={dateChange("day")}
value={date.day}
name="2"
id="2"
maxLength={2}
type="number"
/>
我的 onChange:
const dateChange = (field) => (e) => {
const fieldIndex = e.target.name;
let fieldIntIndex = parseInt(fieldIndex, 10);
// format to fit
let value = e.target.value;
if (value.length === e.target.maxLength) {
if (fieldIntIndex < 3) {
const nextfield = document.querySelector(
`name=${fieldIntIndex + 1}`
);
console.log(nextfield);
if (nextfield !== null) {
nextfield.focus();
}
}
}
const d = { ...date, [field]: value };
setDate(d);
debounceCallback(handleDateInputChange, d);
};
我还在学习,所以任何关于这方面的建议都会很棒 :) 在此先感谢!
【问题讨论】:
标签: javascript reactjs jquery-selectors focus