语义 UI 使用 Enter 键提交表单时,表单验证器不会阻止请求

Semantic UI Form Validator doesn't block request when form submit with Enter key

$('.ui.form').form({
    fields: {
       term: ['minLength[5]', 'empty']
    }
});

$.fn.api.settings.api = {
   'search': '_endpoint/check.php'
};

$('#form').api({
   action: 'search',
   method: 'POST',
   serializeForm: true,
   onComplete: function (response) {
      if (response.success == true) {
      }
       else {
       }

    }
});

如果我点击提交按钮提交表单,没有问题。但是如果我使用回车键提交表单,表单验证和 ajax 请求一起工作。所以提交通过验证。

我能做什么?

Semantic UI 添加了它自己的键盘快捷方式,当您按回车键时提交表单,但由于某种原因,这种提交似乎绕过了验证机制。这实际上可能是一个错误,所以我 urge you to report it.

也就是说,您可以在初始化表单时使用 keyboardShortcuts: false 禁用这些快捷方式:

$('.ui.form').form({
    keyboardShortcuts: false,
    fields: {
       term: ['minLength[5]', 'empty']
    }
});

在大多数浏览器上,按回车键只会提交表单,因此这与按提交按钮的效果相同。