-1

问题

Element+当用户按下ENTER只有一个字段的表单时,我试图阻止在我的应用程序中提交表单。

在他们的文档中它说:

W3C 规定“当表单中只有一个单行文本输入字段时,用户代理应接受该字段中的 Enter 作为提交表单的请求。” 为了防止这种行为,您可以添加 @submit.prevent on 。

当前代码

我有以下代码:

// imports

export const RegisterView = defineComponent({
  name: "RegisterView",
  setup() {
    // ...

    const onSubmit = () => {
      alert("asd");
      // ruleFormRef.value?.validate()?.then(makeRegisterRequest)
    };

    return function render() {
      return h(
        ElForm,
        {
          rules,
          model: record.value,
          ref: ruleFormRef,
          labelPosition: "top",
          hideRequiredAsterisk: true,
          submit: onSubmit
        },
        () => [
          h(
            ElFormItem,
            {class: "mt-10", label: "Email", prop: "email"},
            () => [
              h(ElInput, {
                modelValue: record.value.email,
                "onUpdate:modelValue": (value) => {
                  record.value.email = value;
                },
              }),
            ]
          ),
          h(
            ElButton,
            {nativeType: "submit", loading: loading.value},
            () => "Register"
          ),
        ]
      );
    };
  },
});

问题

Unfurtonately 当我按下时它正在刷新页面ENTER

我试过的

我试过直接在表单上设置监听器

h(ElForm,
{
  submit: onSubmit
})

我尝试将按钮类型更改为submit并尝试对submit事件做出反应

h(
  ElButton,
  {nativeType: "submit", loading: loading.value},
  () => "Register"
),

问题

如何从中捕获submit事件ElForm并确保页面没有被刷新?

4

0 回答 0