- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
伙计们
我正在尝试做一个功能,当用户按下回车键时,它会自动聚焦到下一个输入区域。下面是我写的代码(基本上我把 @keyup.enter="$event.target.nextSibling.focus()
到每个 input
元素,我不能看看为什么它不起作用。
<form
id="formContact"
action
method="post"
autocomplete="on"
autocapitalize="on"
ref="contactForm"
>
<div class="formContact-item fn">
<label for="fn">*family name: </label>
<input
type="text"
name="fn"
id="fn"
placeholder="please enter your family name"
v-model="contactForm.fn"
@keyup.enter="$event.target.nextSibling.focus()"
/>
</div>
<div class="formContact-item gn">
<label for="fn">*given name: </label>
<input
type="text"
name="gn"
id="gn"
placeholder="please enter your given name"
v-model="contactForm.gn"
@keyup.enter="$event.target.nextSibling.focus()"
/>
</div>
<div class="formContact-item email">
<label for="email">*email: </label>
<input
type="email"
name="email"
id="email"
placeholder="please enter your email address"
v-model="contactForm.email"
@keyup.enter="$event.target.nextSibling.focus()"
/>
</div>
<div class="formContact-item phone">
<label for="phone">*Tel: </label>
<input
type="tel"
name="phone"
id="phone"
placeholder="please enter your phone number"
v-model="contactForm.phone"
@keyup.enter="$event.target.nextSibling.focus()"
/>
</div>
<div class="formContact-item msg">
<label for="msg">*messgae: </label>
<textarea
name="msg"
id="msg"
cols="30"
rows="10"
placeholder="please leave your messgae here"
v-model="contactForm.msg"
></textarea>
</div>
<div class="formContact-item submit">
<input type="submit" name="submit" id="submit" value="submit" @click.prevent="postUser" />
</div>
</form>
此外,是否有一种简单的方法可以做到这一点,比如我是否可以通过一种简单的方式获取所有输入(也许可以使用 ref?但是对于所有输入?使用 javascript 查询选择器的另一个选项不符合目的使用 vue 并且您需要将节点列表传输到数组以执行循环?)像这样将相同的代码放入每个输入看起来不是最聪明的方法:)
最佳答案
问题出在您的选择器上。
如果您将记录 $event.target.nextSibling
结果将为 null
,这是因为输入元素是 div 中的最后一个元素并且没有下一个 sibling 。您必须选择 parenElement
的 nextSibling
的 input
元素。
这应该非常适合您:
@keyup.enter="$event.target.parentElement.nextSibling.children[1].focus()"
(考虑选择更好的选择器)
关于vue.js keyup.enter() 专注于下一个输入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896732/
我有一个 Collection View 并以这样一种方式排列它,即在屏幕的一侧有一个单独的列,并且根据焦点中的集合项替换内容。 如果对某个项目的关注超过 0.5 秒,我希望能够换出内容。 这是我目前
这是一种经常出现的情况,对我来说永远不会太容易。我想我会问其他人如何处理它。 想象一下,如果 demo=60 命令行参数的处理是这样完成的: if DemoOptionSpecified() {
我是一名优秀的程序员,十分优秀!