我有这种情况。这是前端 asp:button 组件。
<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClientClick="return Confirm();" OnClick="btnNewsAdd_Click" UseSubmitBehavior="false"/>
这是Javascript:
<script type="text/javascript">
function Confirm() {
var result = window.confirm('Are you sure?');
if (result == true)
return true;
else
return false;
}
</script>
用户应该点击"btnNewsAdd"按钮,Javascript应该被触发,并弹出一个带有是或否选项的对话框。单击"是"将返回 true,"否"将返回 false。如果返回 true,则后端中的 ASP.Net 方法:btnNewsAdd_Click应触发。它一直工作到15分钟前。调试时,JS 会越过返回 true 行并进入不是我自己创建的 javascript 文件;但是,后端方法不会触发。
我注意到在"源"部分中,HTML转换为以下内容。正如人们所看到的,OnClick和OnClientClick自动合并到OnClick中。这是自动的,我不知道它是否可能是问题或部分问题。
<input type="button" name="ctl00$MainContent$btnNewsAdd" value="Edit current news item" onclick="return Confirm();__doPostBack('ctl00$MainContent$btnNewsAdd','')" id="MainContent_btnNewsAdd" />
我真的花了一整天的时间试图绕过它。在某个时候它正在工作,它只是停止工作而没有改变任何东西。任何建议表示赞赏。
正如 Rex 所指出的,以及该线程中的几个解释: 查看其他线程
通过将按钮更改为:
<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClick="btnNewsAdd_Click" OnClientClick="if (!Confirm()) return false;"/>
和Javascript:
<script type="text/javascript">
function Confirm() {
return confirm("Are you sure?");
}
</script>
问题解决了。