asp.net web表单应用程序中的“确认”框
本文关键字:确认 net web 表单 应用程序 asp | 更新日期: 2023-09-27 18:27:13
如果用户想在不上传图像的情况下保存,我想用确认消息框向他们发出警告。
当用户点击保存按钮时,代码触发
if (string.IsNullOrEmpty(obj.Image)) {
obj.Image= null;
//Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('Please Upload Image!');", true);
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "confirm('Are you sure you want to save without uploading images?');", true);
}
上面的逻辑用于显示确认框,但没有显示。
除此之外,如果用户点击了Yes
或No
按钮,我该如何诱捕?
以便我可以相应地激发相关代码。
更新:
我可以显示带有以下代码的确认框
Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "confirm('Are you sure?');", true);
但我不确定如何捕获YES
或No
事件
要处理确认弹出框的结果,请检查返回值。
如果单击"确定",它将返回true,否则将返回false。
例如:
if(confirm('test')) {
alert('ok clicked')
} else {
alert('cancel clicked or closed popup')
}
JSFiddle示例代码在操作
编辑:评论
如果用户在确认对话框上单击"确定",则要重新提交表单,您需要以下内容:
代码隐藏:
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"msgbxConfirm",
"doConfirm();",
true
);
aspx页面:
<script type=text/javascript>
function doConfirm() {
if(confirm('Are you sure?') {
document.getElementById(<id_of_form_submit_button>).click();
}
}
</script>
我在这里添加的一件事是,您无法在服务器端代码中获得确认结果,您必须在JS端编写该代码。因此,为了更好地维护它,您可以在aspx中使用以下JS。
function ConfirmAndExecute()
{
if(confirm("Are you sure?"))
{
OnConfirm();
}
else
alert("you missed !")
}
function OnConfirm()
{
// JS Code to handle post confirm operation
}
在服务器端,page_load,使用以下内容。
Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "ConfirmAndExecute();", true);
您也可以添加一个onclick客户端脚本事件句柄来阻止提交表单,除非确认为true,这样您就不必处理脚本注册了。只需将以下代码添加到您的asp:button
定义中即可
<asp:Button id="btnSave" Text="Save" runat="server" OnClientClick="return confirm('Are you sure?');" />