在SelectedIndexChanged事件的下拉列表上执行javascript确认
我有一个下拉列表,我想在下拉列表的selectedindexchanged事件上调用javascript确认框。问题是我不知道如何在selectedindexchanged事件的C#代码执行之前调用javascript确认框。我的.aspx代码是:在SelectedIndexChanged事件的下拉列表上执行javascript确认,javascript,asp.net,drop-down-menu,confirm,selectedindexchanged,Javascript,Asp.net,Drop Down Menu,Confirm,Selectedindexchanged,我有一个下拉列表,我想在下拉列表的selectedindexchanged事件上调用javascript确认框。问题是我不知道如何在selectedindexchanged事件的C#代码执行之前调用javascript确认框。我的.aspx代码是: OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged" 我想做一些类似的事情: OnSelectedIndexChanged = "return confirm('Are you sure
OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged"
我想做一些类似的事情:
OnSelectedIndexChanged = "return confirm('Are you sure you want to change the cause code?');"
OnSelectedIndexChanged ="ddlCauses_SelectedIndexChanged"
但是,我不认为我可以将onSelectedIndexChanged分配给两个不同的东西……如果选择了yes,我如何允许执行javascript确认,然后执行C代码?如果要使用jQuery,您可以执行以下操作:
$("#yourSelectId").change(function(event){
event.preventDefault(); //This makes the standard event not happen
if(confirm('text'))
//do something...
});
如果我理解正确的话 在服务器端,您将填充下拉列表并设置事件处理程序
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>
函数confirmfunction(){
如果(确认(“进行此更改?”){
__doPostBack('uiItems','');
}
}
需要注意的是,如果在确认提示中选择“取消”,则不会恢复选择框的原始值。可能的重复值几乎相同,但是当用户点击“是”按钮时,我希望触发onSelectedIndexChanged代码。相反,它除了更改下拉列表外什么也不做……关于如何实现这一点,有什么帮助吗?目前我正在使用:onChange=“DisplayConfirmation();”onselectedexchanged=“ddlCauses\u selectedindexchange”但是,当我在确认框中点击取消时,它会执行我在ddlcaused\u selectedindexchange方法下的C代码。如果我点击“是”,它会回发,但不会发生任何事情。我希望相反的情况发生,也就是说,当用户点击YES时,执行selectedIndexChanged中的代码;当用户点击NO时,则不会发生任何事情(只需回发即可)。我实际上在查看代码时发现,我只需要更改javascript函数中的某些内容。我有:函数DisplayConfirmation(){if(confirm('您确定要更改原因代码吗?'){{doPostback('ddlCauses','');}}}我在if语句中加了一个“!”使它做相反的操作。你们这些家伙很鼓舞人心:DI完全复制了代码,而且它从不执行回发