如何在提交时处理 q-input / preventDefault 中的 "enter"?
how to handle an "enter" in a q-input / preventDefault on submit?
我有一个文本输入字段,类似于:
<q-input
@blur="checkTextAnswer"
@keyup.enter="submit"
@keydown="checkEnterKey"
v-model.trim="textInput"
当用户按下回车键时,我想将其视为提交,即处理输入而不是在文本中添加额外的换行符。
有点像 JQuery 天的 preventDefault
。我确实找到了这个:
https://quasar-framework.org/components/other-utils.html
但似乎更一般 DOM 事件
我也试过只修改字符串(str.replace 换行),但即使是那个 hack 也有一个丑陋的延迟。
您需要在活动中使用 vue event modifier“.prevent”。它还需要是一个@keydown 事件,因为 "add newline" 事件是在 "textarea".
类型的输入中使用 @keydown 事件调用的
解决方案是:
<q-input
type="textarea"
@keydown.enter.prevent="submit"
v-model.trim="textInput"
编辑:
'submit' 是您必须定义的方法。这是我在 codepen 中制作的示例:
如果您想在按回车键时提交表单,您可以使用 javascript。
this.$refs[refKeyYouGaveToYourForm].submit()
我有一个文本输入字段,类似于:
<q-input
@blur="checkTextAnswer"
@keyup.enter="submit"
@keydown="checkEnterKey"
v-model.trim="textInput"
当用户按下回车键时,我想将其视为提交,即处理输入而不是在文本中添加额外的换行符。
有点像 JQuery 天的 preventDefault
。我确实找到了这个:
https://quasar-framework.org/components/other-utils.html
但似乎更一般 DOM 事件
我也试过只修改字符串(str.replace 换行),但即使是那个 hack 也有一个丑陋的延迟。
您需要在活动中使用 vue event modifier“.prevent”。它还需要是一个@keydown 事件,因为 "add newline" 事件是在 "textarea".
类型的输入中使用 @keydown 事件调用的解决方案是:
<q-input
type="textarea"
@keydown.enter.prevent="submit"
v-model.trim="textInput"
编辑:
'submit' 是您必须定义的方法。这是我在 codepen 中制作的示例:
如果您想在按回车键时提交表单,您可以使用 javascript。
this.$refs[refKeyYouGaveToYourForm].submit()