由于文本框 onblur 事件中的警报框而导致按钮单击事件丢失

2023-11-26

我创建了一个简单的 Web 表单,其中包含一个文本框和一个按钮。我已经捕获了文本框的 onblur 事件。

<html xmlns="http://www.w3.org/1999/xhtml" >  
<head runat="server">  
    <title>Untitled Page</title>  
    <script language="javascript" type="text/javascript">  
    function onTextBoxBlur()  
    {  
        alert("On blur");  
        return true;  
    }  
    </script>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <asp:TextBox ID="TextBox1" runat="server" onblur="onTextBoxBlur();"></asp:TextBox>  
    <asp:Button ID="Button1" runat="server" Text="Button" />  
</form>  
</body>  
</html>

当我在文本框中输入一些值并单击按钮时,文本框的 onblur 事件发生,但按钮的 onclick 事件不会发生。而且,当我从 js 函数中删除警报框时,它工作正常。按钮单击事件的一些方式丢失了。我认为这是由于警报框造成的。知道为什么会这样吗?


按钮的“单击”有两个部分:鼠标按下和鼠标松开。当您将鼠标放在按钮上时,它会获得焦点 - 模糊文本框并触发警报。由于警报对话框是模态的,它们会停止页面上的所有活动,因此按钮不会检测到鼠标松开,并且您的单击也不会完成。

可以使用模糊事件中的计时器来解决您的问题,并在按钮的 mousedown 事件中取消该计时器:

var timer;
function onTextBoxBlur()  
{  
    timer = window.setTimeout(function () { alert("On blur"); }, 0);  
    return true;  
}  

function onButtonMouseDown()
{
    clearTimeout(timer);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于文本框 onblur 事件中的警报框而导致按钮单击事件丢失 的相关文章

随机推荐

  • 切片集合的 Python 方式是什么?

    我有一些数据列表 例如 some data 1 2 4 1 6 23 3 56 6 2 3 5 6 32 2 12 5 3 2 我想获得具有固定长度的唯一值 我不关心我会得到哪个 并且我也希望它成为set 我知道我能做到set from s
  • 跨多个脚本定义公共变量?

    我有许多 Bash 和 Perl 脚本 它们在功能上不相关 但相关之处在于它们在同一项目中工作 它们在同一个项目中工作的事实意味着我通常在每个脚本的顶部指定相同的目录 相同的项目特定命令 相同的关键字 目前 这并没有让我感到困扰 但我知道将
  • LINQ 表达式返回属性值?

    我正在尝试创建一个通用函数来帮助我使用 LINQ to SQL 从本地列表中选择数千条记录 SQL Server 至少 2005 将查询限制为 2100 个参数 我想选择比这更多的记录 这是一个很好的用法示例 var some produc
  • WordPress 表单操作提交

    在 WordPress 中有一个自己定制的表单 action send form php 提交时 它总是转到send form php 但是这个 php 用于发送信息 我无法使用主题进行样式设置 有没有办法在发送信息并打印出来并在字段中显示
  • 如何使RequiredAttribute与枚举字段一起使用

    我最近意识到 requiredAttribute 不适用于枚举字段 假设我在表单上有两个名为 ddlOfficers 和 ddlApplicationTypes 的选择元素 这两个元素都是在 HtmlHelper 方法的帮助下呈现的 创建d
  • Swift:将参数传递给选择器

    使用 Swift 3 Xcode 8 2 1 Method func moveToNextTextField tag Int print tag 下面的行编译得很好 但是tag有一个未初始化的值 let selector selector
  • C# 中的 Windows 版本 [重复]

    这个问题在这里已经有答案了 我想知道 PC 的 Windows 版本 在 C Framework 3 5 中 我尝试过使用 操作系统 os 环境 OSVersion 版本 ver os Version 但结果是 平台 WIN32NT 版本6
  • 四元数旋转不起作用

    在适用于 Android 的 OpenGL ES 1 中 我有一个由 27 个较小的立方体组成的 Rubic 立方体 我想要旋转 导致特定的小立方体恰好位于视点前面 所以我需要两个向量 一个是从对象原点到特定立方体的向量 另一个是从原点到视
  • 如何对hmatrix进行自动微分?

    Sooooo 事实证明从假矩阵 to hmatrix事实证明数据类型并不平凡 序言供参考 LANGUAGE RankNTypes LANGUAGE ParallelListComp LANGUAGE ScopedTypeVariables
  • 如何在 PHP 中重写 register_argc_argv ?

    我正在使用共享主机 fasthostingdirect 并且出于某种原因 他们默认关闭此标志 这意味着我无法访问 PHP 命令行参数 除非我使用 n no php info 之后标记php exe 试过ini set register ar
  • 在 matplotlib 中使用 3D 数据生成热图

    我有一个函数returnValuesAtTime返回三个列表 x vals y vals and swe vals 所有三个列表的长度相同 并且每个元素swe vals对应于一个x value from x vals and a y val
  • 如何获取当前所有正在运行的任务

    我想获取在 android 中运行的所有任务 我在 ActivityManager 中找到了 getRunningTasks 但从 android 5 0 开始 getRunningTasks 可能不会提供所有任务 在我的情况下 它提供主屏
  • 重写 Javascript 中的等价比较

    是否可以重写 Javascript 中的等价比较 我得到的最接近的解决方案是定义 valueOf 函数并在对象前面加上加号来调用 valueOf 这有效 equal x y true 但这失败了 equal x y true why doe
  • clojure.java.jdbc/延迟查询大结果集

    我正在尝试从数据库读取数百万行并写入文本文件 这是我的问题的延续数据库转储到文本文件有副作用 我现在的问题似乎是在程序完成之前不会发生日志记录 我没有懒惰处理的另一个指标是 在程序完成之前根本不会写入文本文件 根据 IRC 提示 我的问题可
  • 如何在不破坏 Maven 发布插件的情况下传递 javac 多个命令行参数(其中一些包括冒号)?

    当我忘记在 a 中声明serialVersionUIDs 时 我想让我的 Maven 构建失败Serializable班级 和javac 这很容易 javac Xlint serial Werror Source java 直接将其转换为
  • 当您有行跨度时替换行颜色

    我有这个 HTML table class altRowTable 这工作正常 直到我有一些行包含rowspan 各行不一致 所以我有这样的东西 下面的 代表一个空格 不能真正在 SOF 中做表 ID name Number 1 joe 1
  • 释放字符串后仍然可以打印它吗?

    我正在学习和测试 C 中的内存分配 我想测试如果free 叫做 我预计可能存在分段错误或指针NULL当我运行下面的程序后 但是 我仍然可以成功打印输出中的字符串 我也尝试过免费str两次 然后输出 2 发生错误 看起来之前分配的内存已经成功
  • 使用 JavaScript 或 jQuery 监听 Youtube 事件

    我有一个滑块 其中包含 4 个通过 iframe 嵌入代码嵌入的 YouTube 视频 http www youtube com embed i enablejsapi 1 我正在努力使onStateChange四个视频中任何一个的事件调用
  • 无法添加对 Outlook 2016 (Office 365) Interop (16.0.0.0) 的引用

    我正在尝试在 C NET 4 6 1 WPF 项目中添加对 Microsoft Outlook 16 0 对象库 的引用 因为我安装了 Office 2016 以前版本的对象库与 2016 版 Office 不兼容 如果我使用 Excel
  • 由于文本框 onblur 事件中的警报框而导致按钮单击事件丢失

    我创建了一个简单的 Web 表单 其中包含一个文本框和一个按钮 我已经捕获了文本框的 onblur 事件