【问题标题】:Execute javascript confirm on drop down list onSelectedIndexChanged Event在下拉列表 onSelectedIndexChanged 事件上执行 javascript 确认
【发布时间】:2013-02-11 15:29:50
【问题描述】:

我有一个下拉列表,我想在下拉列表的 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# 代码?

【问题讨论】:

  • 几乎一样,但是当用户点击YES按钮时,我希望触发onSelectedIndexChanged代码。相反,它只会更改下拉列表...对如何实现这一点有任何帮助吗?

标签: javascript asp.net drop-down-menu confirm selectedindexchanged


【解决方案1】:

如果您要使用 jQuery,您可以执行以下操作:

$("#yourSelectId").change(function(event){
    event.preventDefault(); //This makes the standard event not happen
    if(confirm('text'))
        //do something...
});

【讨论】:

    【解决方案2】:

    如果我理解正确

    在服务器端,您将填充下拉列表并设置事件处理程序

    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>
    

    需要注意的是,如果您在确认提示中选择“取消”,选择框的原始值不会恢复。

    【讨论】:

    • 目前我正在使用:onChange = "DisplayConfirmation();" OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged" 但是,当我在确认框上点击取消时,它会执行我在 ddlCauses_SelectedIndexChanged 方法下的 C# 代码。如果我点击是,它会回发,但没有任何反应。我希望相反的情况发生,也就是说,当用户点击 YES 时,执行 selectedIndexChanged 中的代码,当用户点击 NO 时,什么也没有发生(只需回发即可)
    • 我实际上是在查看代码,发现我只需要更改 javascript 函数中的某些内容。我有: 我放了一个“!”在 if 语句中使其相反。你们是鼓舞人心的:D
    • 我完全复制了代码,它从不执行回发
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多