0

"are you sure..." ドロップダウンリストと。とともに、単純なJSポップアップウィンドウがありasp:buttonます。ボタンをクリックしたときに必要なのは、次のメッセージを表示することです。

"Are you sure you want to perform <%= ACTION %>?"

ここで、ACTIONはdropdownlist.SelectedItem.Textからの文字列です。

以下は機能していないようです。

OnClientClick="return confirm('Are you sure you want to perform <%= ACTION %>? );

実際<%= ACTION %>には、値の代わりに出力するだけです。

私も試しました:

function testMe() {
    return confirm('Are you sure you want to perform ' + document.getElementById('<%= hfAction.ClientID %>').value + '?');
}

OnClientClick="testMe();"

cancelただし、上記の場合、またはをクリックしてもポストバックが発生しOKます。

正しい使用法はどれですか?

4

3 に答える 3

2

これを試して:

<asp:DropDownList runat="server" ID="ACTION">
    <asp:ListItem>Action 1</asp:ListItem>
    <asp:ListItem>Action 2</asp:ListItem>
</asp:DropDownList>

<script type="text/javascript">
    function ExecuteConfirm() {
        var ddlId = '<%= ACTION.UniqueID %>';
        var action = $("#" + ddlId + " option:selected").text();
        return confirm('Are you sure you want to perform ' + action + ' ?');
    }
</script>

<asp:Button runat="server" Text="Button" OnClientClick="return ExecuteConfirm();" />
于 2012-07-19T13:48:38.490 に答える
2

サーバー コントロール宣言内でサーバー タグを使用することはできません。オブジェクトを初期化するときに、コード ビハインドで OnClientClick スクリプトを設定します。

mybutton.OnClientClick 
    = string.format("return confirm('Are you sure you want to perform {0}?');", ACTION);
于 2012-07-19T12:51:38.537 に答える
1

申し訳ありませんが、私の最後の答えは完全なゴミでした(投稿する前に考えていませんでした)。これはどうですか(あなたはほとんど正しいです)?

function testMe() {
    var val = document.getElementById('<%= hfAction.ClientID %>').value;
    return confirm('Are you sure you want to perform ' + val + '?');
}

OnClientClick="return testMe();"

OnClientClickでのリターンを逃しました。

于 2012-07-19T13:56:15.547 に答える