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 分配给两个不同的东西......我怎样才能允许执行 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 回答