首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnClick事件未触发

问OnClick事件未触发
EN

Stack Overflow用户
提问于 2009-10-02 10:48:53
回答 2查看 2.7K关注 0票数 1

我已经创建了一个非常简单的测试页面来复制我在我的application.Sorry中遇到的问题,如果这看起来像是对于如此微不足道的事情的长篇大论。

.aspx页面

代码语言:javascript
复制
<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属性

代码语言:javascript
复制
if (!IsPostBack)
    {
        tb.Attributes.Add("onchange", "addSaveDetails('abc###123###456###test###abc###');");
    }
}

,它按如下方式呈现

代码语言:javascript
复制
<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除了发出警告之外什么也不做。是什么在阻止事件冒泡到最后一次调用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-02 10:55:06

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

票数 4
EN

Stack Overflow用户

发布于 2009-10-02 11:19:31

令人气愤。谢谢tvanfosson。它让我走上了正确的道路,但我不需要显式地返回true

在我的js函数中,我有一个debugger;语句。把事情搞砸了。

即注释掉调试器修复的东西..

代码语言:javascript
复制
function addSaveDetails(strDetails) {
debugger;
alert('func1');
//return true;

}

调试器是怎么回事;它阻止了第二个事件的触发!啊。事实证明,我实际上创造了一个问题,试图解决一个不存在的问题!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1508848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档