0

私は Java Script にあまり詳しくないので、あなたの助けとアドバイスが必要です!! クリックすると、ASPボタンに次のコードがあります。確認ボックスが表示されたら、ユーザーは [OK] または [キャンセル] を選択する 2 つの選択肢があります。次のコードは、OK またはキャンセルのどちらの場合でも機能します。

 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ステートメントを書く2つの方法があります。

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';"
/>

また、 document.locationではなくwindow.locationを使用する必要があることにも注意してください。

于 2012-11-16T07:57:17.130 に答える