如何在twitter bootstrap 3.1模式对话框中点击事件之前防止模糊事件,当用户点击它之外。

时间:2014-04-17 18:31:35

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

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

我的模态对话框有一个聚焦的输入元素,具有字段验证,每当显示模态对话框时,输入框都会聚焦。在输入框的模糊处,验证发生并相应地抛出错误。(我希望这个逻辑保留相同)。!!

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

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

请帮助!非常感谢。

1 个答案:

答案 0 :(得分:0)

点击前模糊火焰,你无法改变它。我的建议是将验证从模糊转移到按钮点击(我猜你必须有一个确定或提交按钮)。这将解决您的问题。

我也有一些黑客攻击(我建议反对它)。由于您遇到此问题,我假设您的模态隐藏使用动画

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

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

  3. Say模态需要1秒才能消失,你可以试试这样的东西

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

    我仍然希望在你的场景中将验证从模糊中移开:)