ASP.Button - OnClientClick错误地触发

时间:2011-09-12 14:12:24

标签: asp.net asp.net-2.0

我有一个asp.net按钮,我使用OnclientClick关闭窗口

<asp:Button ID="btnCancelSomething" runat="server" class="type-button" 
                    Text="Cancel"  OnClientClick = "Javascript:self.close()" 
                    onclick="btnCancelSomething_Click"/>

onclick事件什么都不做,我打算将其删除。但是,当我第一次再次加载页面时单击该按钮。我再次单击该按钮,然后触发脚本。

如何让窗口第一次关闭?

1 个答案:

答案 0 :(得分:4)

如果按钮后面没有任何服务器端功能,为什么要将它设为asp:Button?一个常规按钮可以很好地完成这个任务:

<input type="button" value="Cancel" class="type-button" onclick="self.close()" />

这样它纯粹是客户端,因为无论如何都需要所有功能。它不会造成任何不必要的“回复”。

你甚至可以更进一步,将标记与功能分开:

<input type="button" value="Cancel" class="type-button" id="cancelButton" />

然后在其他地方的script标记中,或在单独的文件中:

$('#cancelButton').click(function() {
  self.close();
});

(当然,这个例子假设jQuery。但是那不是什么?如果关键点在这里,标记和功能的分离。如何实现它,甚至如何用{{1}识别元素在我的例子或其他方面,取决于你。)