javascript - OnClick 事件未触发

标签 javascript dom-events

我创建了一个非常简单的测试页面来复制我在应用程序中遇到的问题。很抱歉,对于如此琐碎的事情,这看起来很啰嗦。

.aspx 页面:

<body>
<form id="form1" runat="server">
    <asp:TextBox ID="tb" runat="server"></asp:TextBox>
    <asp:Button ID="btnOk" runat="server" text="OK" Width="60px"  UseSubmitBehavior="true" OnClientClick="saveAmendments();" />
</form>

在后面代码的 page_load 中,我向文本框添加了一个 onchange 属性:

if (!IsPostBack)
    {
        tb.Attributes.Add("onchange", "addSaveDetails('abc###123###456###test###abc###');");
    }
}

渲染如下:

<body>
    <form name="form1" method="post" action="TestJP.aspx" id="form1">
    <div>
        <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUi3er8ht8oaCZzy2..." />
    </div>

    <div>
       <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKOoa..." />
    </div>

    <input name="tb" type="text" value="testtt" id="tb" onchange="addSaveDetails('abc###123###456###test###abc###');" />
    <input type="submit" name="btnOk" value="OK" onclick="saveAmendments();" id="btnOk" style="width:60px;" />
</form>

因此,如果我更改文本框中的值并单击屏幕上的其他位置,AddSaveDetails 函数将触发。然后单击按钮,saveAmendments 将触发。但是,如果您更改文本然后立即单击按钮(而不是首先单击屏幕上的其他位置),则只有第一个 (onchange) 函数会触发。 onClick 事件永远不会发生。被调用的 js 除了发出警报外什么都不做。什么可以阻止事件冒泡到最后一次调用?

最佳答案

除了警报之外,请尝试从您的函数中返回 true。我假设事件操作传播正在停止,因为您返回 false(或什么都没有,这被解释为 false)。

关于javascript - OnClick 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508848/

相关文章:

javascript - 在内部函数中消除歧义

javascript - 在不禁用和重新启用事件的情况下,是否可以防止 Chrome 在显示焦点事件警报时导致无限循环?

javascript - 防止默认事件操作不起作用...?

javascript - 仅在 animate.css removeClass 转换完成后运行函数

javascript - 根据 PHP 中给定的 UTC 时间和秒数计算 UTC 时间

javascript - 谷歌地图标记,多个单独的事件

javascript - 如何通过数字键盘输入验证小数点后两位的输入值?

javascript - 为 html 元素赋值并读取它

javascript - 如何使用 JavaScript 更改当前页面导航按钮/链接的背景颜色?

javascript - 处理 Selenium 中的警报