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

模糊和提交/单击事件的冲突

通寂离
2023-03-14

我有两件东西

item1是文本框

项目2是提交按钮

现在item1在jquery中有模糊事件。在那个模糊事件中,我进行了验证,若验证失败,用户将收到确认消息

所以,如果用户按yes,他可以继续

如果用户按“否”,则文本框将为空,需要再次输入详细信息。

所以现在我的问题是,若用户在item1中输入详细信息并直接单击item2,按钮的submit事件将被拒绝,item1的blur事件将被调用。所以第一次被拒绝,用户必须按第二次按钮(这就是问题所在)。

因此,如何知道在item1的模糊事件,如果用户点击item2比我可以进一步触发item2的点击事件。

共有1个答案

空枫涟
2023-03-14

考虑这个代码

var $item1 = $('#item1');
var $item2 = $('#item2');
$item1.on('blur', function (oEvent) {
    if ($item2.is(oEvent.relatedTarget)) {
        // your blur is caused by click on $item2 a.k.a submit button
    } else {
        // your blur is caused by smth else
    }
});

它检查焦点移动的位置,您可以添加一些特定的布尔标志,以便稍后在提交处理程序中使用,或者以某种方式更改验证。

请注意,模糊事件是失去焦点的事件,焦点可能会消失,不仅是因为点击,还因为标签导航。

更新:
添加了一个JSFIDLEhttp://jsfiddle.net/DbjQc/尝试聚焦文本输入,然后单击其他位置。之后,再次尝试聚焦文本输入,然后单击提交按钮-您将看到行为如何变化。

 类似资料:
  • 我有一个表单,其中有一条错误消息,如下例所示: http://codepen.io/anon/pen/dYWyEM?editors=101 重现问题的步骤如下: 打开coDepen链接后, 1)专注于输入领域 2) 按提交按钮 3) 由于首先触发模糊事件,因此首先隐藏错误消息,从而更改提交按钮的位置。因此,点击事件根本没有注册,我需要再次点击以提交表单。 有没有办法先发送提交事件? 我需要检测触发

  • 提交表单时,会触发 submit 事件,它通常用于在将表单发送到服务器之前对表单进行校验,或者中止提交,并使用 JavaScript 来处理表单。 form.submit() 方法允许从 JavaScript 启动表单发送。我们可以使用此方法动态地创建表单,并将其发送到服务器。 让我们看看它们的更多细节。 事件:submit 提交表单主要有两种方式: 第一种 —— 点击 <input type="

  • 问题内容: 我有一个id为id的按钮。我将此元素附加了两个jQuery事件 1。 2。 但是每次它给我 问题答案: 您需要使用超时来检查第一次点击后是否还有另一次点击。 这是窍门: 用法:

  • 我正在使用android Studio模板中的android导航抽屉导航菜单。如何根据id导航到不同的活动。 我知道我错过了什么,但我找不到解决办法。有人能帮我吗?

  • 我使用JSF Mojarra 2.2.8和PrimeFaces 5.1。对于文本输入,我使用primeface编辑器,我想用ajax自动上传插入的文本。 编辑器仅支持onChange事件。任何建议,我如何可以让一个模糊事件为编辑器工作,以减少请求数?我尝试了这个解决方案(Primeface Editor和ajax在blur上提交),但事件从未被触发。谢谢。

  • 问题内容: 当有人填写表格并点击提交时,我需要在Google Analytics(分析)中跟踪事件。出现的结果页面是标准仪表板类型的页面,因此,为了跟踪该页面上的事件,我必须在url中传递事件,然后读取url并输出google Analytics事件跟踪javascript代码基于它。但是,这是一个经常添加书签的页面,并且页面会被重新加载,单击返回等。因此,我真的不希望在URL中传递跟踪事件并破坏