0

我对 java Script 不太熟悉,因此我需要您的帮助和建议!单击时,我的 asp 按钮中有以下代码。当显示确认框时,用户有两个选择可以选择“确定”或“取消”。以下代码适用于 OK 或 Cancel 两种情况。

 protected void cancel_Click(object sender, EventArgs e)
    {
        string url = "../../Default.aspx";

        ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "confirm('Data is not saved'); window.location.href = '" + url + "';", true);
    }

但是,我想做的是在 ClientScript 函数中使用 javascript 执行 if/then/else 语句,但我不知道它的正确语法。例如我正在尝试做的事情

ClientScript.RegisterStartupScript(this.GetType(), "callfunction", "javascript:if(confirm('Data is not saved')== true) return {document.location.href = '../../Default.aspx'}; else {document.location.href = '../../Current.aspx'};", true);

任何意见,将不胜感激!

4

1 回答 1

1

在添加服务器端之前尝试脚本,这样更容易调试。

这里有两种写if语句的方法;

if (confirm('Data is not saved')) {
 window.location.href = '../../Default.aspx';
} else {
 window.location.href = '../../Current.aspx';
}

甚至;

window.location.href = confirm('Data is not saved') ?
    '../../Default.aspx' : '../../Current.aspx';

更新

<asp:Button ID="cancel" runat="server" Text="Cancel" CausesValidation="false"
  onClientClick="window.location.href = confirm('Data is not saved') ? '../../Default.aspx' : '../../Current.aspx';"
/>

另请注意,您应该使用window.location而不是document.location

于 2012-11-16T07:57:17.130 回答