为什么我不能在表单中使用2个相同的输入字段,然后按Enter键提交表单
直截了当。我正在尝试使用enter
按钮在输入元素聚焦时提交表单,然后应该发出一个事件。
如您所见,如果我有1个以上相同类型的输入(例如2个input="text"
输入,则当我将焦点放在某个输入上时按下enter
按钮时,它将无法发出submit
事件。
在紧接其下的第二个应用示例中,我具有完全相同的形式,具有完全相同的vuejs实例化,但是只有一个一个输入字段,并且当您按Enter时,将焦点放在该元素上它会正确发出Submit事件。
我试图通过谷歌搜索可能发生的情况,但是除了“防止在回车时提交表单”外,我一直在努力寻找其他用途。
我尝试将ID属性,name
属性等添加到元素,但仍无法按预期工作。
我不是vuejs的初学者,也不是高级JS用户,因此,“简单”的答案将不胜感激:D
如果需要更多信息,请告诉我们,我会尽力提供
答案 0 :(得分:5)
请确保您的表单具有
<button type="submit">Submit</button>
或
<input type="submit" value="Submit" />
如果不想显示按钮,可以使用
<input type="submit" style="position: absolute; left: -9999px"/>
您可以在此问题Submitting a form by pressing enter without a submit button
中找到有关隐藏按钮的更多信息。答案 1 :(得分:0)
我尝试了许多不同的解决方案,但没有一个对我有用。可能是因为我的表单中有几个按钮,只有一个按钮可以提交表单。
This终于奏效了:
在输入的最后一个元素上使用@keyup.enter
,如下所示:
<input type="text" @keyup.enter="save" />
这样,当用户在填写完表格的最后一个字段后立即按Enter键即可提交表格。
P.S。
在我的情况下,我使用的是<v-text-field>
而不是<input>
,但这应该没有区别。