OnClick事件未触发

时间:2009-10-02 10:48:53

标签: javascript javascript-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除了提醒之外什么都不做。什么可以阻止事件冒泡到最后一次通话?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

真气。谢谢tvanfosson。它让我走上正轨,但我不需要明确地返回真正的

在我的js函数中,我有一个调试器;声明。这让事情搞砸了。

即。评论调试器固定的东西..

function addSaveDetails(strDetails) {
debugger;
alert('func1');
//return true;

}

调试器的含义是什么;这阻止了第二次事件的发射!哎呀。事实证明,我实际上试图解决一个不存在的问题!!