jquery - 当用户在其外部单击时,如何在 twitter bootstrap 3.1 模式对话框中的单击事件之前防止模糊事件。!

标签 jquery css twitter-bootstrap twitter-bootstrap-3

我正在使用 twitterbootstrap 3.1.0 并且我有一个模态。我希望每当用户在模态之外单击时隐藏模态(所以我使用了 data-backdrop="true" 并且是工作正常。)

我的模态对话框有一个具有字段验证的聚焦输入元素,只要显示模态对话框,该输入框就会聚焦。在该输入框模糊时,将进行验证并相应地抛出错误。(我希望保留此逻辑一样)。!

我的问题是,每当用户在模态对话框外单击时,它就会消失并显示错误消息(输入字段的字段验证)。由于在单击之前触发了模糊事件,它会显示错误消息,然后模态对话框消失。

我不希望在隐藏模态对话框之前显示字段验证消息。

请帮助!提前致谢。

最佳答案

Blur 在点击前触发,您无法更改它。我的建议是将验证从模糊转移到单击按钮(我猜你一定有一个确定或提交按钮)。这将解决您的问题。

我也有一些技巧(我不建议这样做)。既然你有这个问题,我假设你的模态隐藏使用动画

  1. 不使用动画隐藏模态。该消息仍会存在,但您不会有时间看到它。

  2. 如果您想知道动画时间,您可以在该时间后使用 setTimeout 来检查模式是否仍然可见。如果是,则显示错误消息,否则不要。

假设 modal 需要 1 秒才能消失,你可以尝试这样的事情

// Inside blur callback function

setTimout(function(){
    if($("#modal").is(":visible")) {
        // show error message
    }
},1100); //1.1 seconds

我仍然更愿意在您的场景中将验证从模糊中移开:)

关于jquery - 当用户在其外部单击时,如何在 twitter bootstrap 3.1 模式对话框中的单击事件之前防止模糊事件。!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140777/

相关文章:

jquery - 动态添加删除类

css - 在 CSS 中使用竖线的正确语法是什么?

html - Bootstrap : CSS - height of list-group-item

css - 在 CSS 内容中添加空格

html - 如何使用 css 定位特定的 img

html - Bootstrap CSS 文本颜色不变

html - Popover 内的 Bootstrap Accordion

javascript - 通过单击图像隐藏和显示 div

jquery 选择器选择查找 imgs 但不是子 div 中的图像

Javascript 创建可变深度的分层列表