0

ドロップダウン リストがあり、ドロップダウン リストの selectedindexchanged イベントで JavaScript 確認ボックスを呼び出したいと考えています。問題は、selectedindexchanged イベントの C# コードを実行する前に、javascript の確認ボックスを呼び出す方法がわからないことです。私の .aspx コードは次のとおりです。

 OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged"

私は次のようなことをしたいと思います:

OnSelectedIndexChanged = "return confirm('Are you sure you want to change the cause code?');"



OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged"

ただし、onSelectedIndexChanged を 2 つの異なるものに割り当てることはできないと思います...JavaScript 確認の実行を許可し、[はい] が選択されている場合に C# コードを実行するにはどうすればよいですか?

4

2 に答える 2

1

jQuery を使用する場合は、次のことができます。

$("#yourSelectId").change(function(event){
    event.preventDefault(); //This makes the standard event not happen
    if(confirm('text'))
        //do something...
});
于 2013-02-11T15:46:12.287 に答える
0

正しく理解しているなら

サーバー側では、ドロップダウンにデータを入力し、イベント ハンドラーをセットアップします。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            uiItems.Items.Add(new ListItem("", ""));
            uiItems.Items.Add(new ListItem("One", "One"));
            uiItems.Items.Add(new ListItem("Two", "Two"));
            uiItems.Items.Add(new ListItem("Three", "Three"));
            uiItems.Attributes.Add("onChange", "confirmfunction();");
        }
    }

    protected void ddlCauses_SelectedIndexChanged(object sender, EventArgs e)
    {
        uiText.Text = uiItems.SelectedItem.Text;
    }

あなたが持っているaspxページで

    <asp:DropDownList runat="server" ID="uiItems" OnSelectedIndexChanged="ddlCauses_SelectedIndexChanged">
</asp:DropDownList>

<script type="text/javascript">
    function confirmfunction() {
        if (confirm("Make this change?")) {
            __doPostBack('uiItems', '');
        } 
    }
</script>

確認プロンプトで [キャンセル] を選択すると、選択ボックスの元の値が復元されないことに注意してください。

于 2013-02-11T16:23:17.507 に答える