当前位置: 首页 > 知识库问答 >
问题:

如何在模糊事件触发之前触发提交事件?

公西宏峻
2023-03-14

我有一个表单,其中有一条错误消息,如下例所示:

http://codepen.io/anon/pen/dYWyEM?editors=101

重现问题的步骤如下:

打开coDepen链接后,

1)专注于输入领域

2) 按提交按钮

3) 由于首先触发模糊事件,因此首先隐藏错误消息,从而更改提交按钮的位置。因此,点击事件根本没有注册,我需要再次点击以提交表单。

有没有办法先发送提交事件?

我需要检测触发模糊事件的目标。似乎relatedTarget使我们能够找出触发模糊事件的元素。但是,这在Firefox中不起作用。

有没有办法在所有浏览器中找出相关目标?

共有2个答案

戚学文
2023-03-14

根据回答中的内容,我得出了这个解决方案。收听mousedown事件,该事件在blur之前触发,并根据错误消息是否可见检查用户是否可以提交表单。

form.on('mousedown','input[type="submit"]', function(e) {
  if(!errorMsg.hasClass("hidden")){
    e.preventDefault();
    alert("Can't submit until the error message is gone");
  }
});

我已经更新了你的密码笔。

相威
2023-03-14

如果您打算对blur执行字段验证,则仍然需要一种方法来检查表单提交时是否存在任何验证错误,以便在存在验证错误时避免提交表单。

因此,我建议使用一种替代方法,而不是解决您的确切问题,因为我认为当前的模型一开始可能会很麻烦。

为什么不在表单提交时执行所有字段验证而不是字段模糊,然后在任何字段出现验证错误时阻止提交?

 类似资料:
  • 使用mui.trigger()方法可以动态触发特定DOM元素上的事件。 .trigger( element , event , data ) element Type: Element 触发事件的DOM元素 event Type: String 事件名字,例如:'tap'、'swipeleft' data Type: Object 需要传递给事件的业务参数 示例 自动触发按钮的点击事件: var

  • 问题内容: 我的整个项目都使用(Bluebird)Promises,但是有一个使用EventEmitter的特定库。 我想要实现以下目标: 我在Promises链中读了EventEmitter的答案。这给了我一种执行’connect’事件的回调的方法。这是我到目前为止所到之处 现在如何进一步链接“ eventB”? 问题答案: 我假设您想为每个事件做不同的事情。即使由的动作触发,您也可以将其视为另

  • 问题内容: 我有两个反应事件: 表单提交事件 keyPress事件 但是reactJS没有捕获由触发的表单提交。如何通过适当的事件调用from ? 问题答案: 我今天学到了一些新东西:这就是DOM的工作方式。 从MDN网站: 从基于Gecko的应用程序中调用此方法时,不会触发表单的onsubmit事件处理程序(例如)。通常,不能保证HTML用户代理会调用它。 根据HTML规范: 调用该方法时,必须

  • 我正在尝试捕获提交按钮click事件,并将页面滚动到顶部,如果它还没有在那里。 由于某些原因,该事件不会第一次触发,即如果滚动大于0,则不会发生滑到页面顶部的情况。只有第二次才会激活。 有什么想法或建议吗?我是不是漏掉了什么?谢谢.

  • 问题内容: 我已使用将事件附加到文本框。它工作正常。当我想通过另一个函数以编程方式触发事件时,出现了我的问题。 我该怎么做? 问题答案: 您可以在IE 8或更低版本上使用fireEvent,在大多数。要创建您要触发的事件,可以使用或取决于浏览器。 这是一段不言自明的代码(来自原型),它在上触发事件: