当 ASP.NET 验证失败时,我会显示一个 jquery 对话框,这工作正常。验证完成并成功后,我需要根据用户输入添加一个确认对话框。
我添加了对话框,它按预期出现,但当我期望用户决定是否继续使用服务器端进程时,它不会等待用户输入并执行服务器端进程
function WebForm_OnSubmit() {
if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
$("#validation_dialog").dialog({
title: "¡No pudimos publicar!",
modal: true,
resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
return false;
}
else
{
if ($("#<%=hClientePrivado.ClientID %>").val() === 'G') {
if ($("#<%=hRubroGratis.ClientID %>").val() !== '0' || $("#<%=hoptTipo.ClientID %>").val() !== '0' || $("#<%=hWeb.ClientID %>").val() !== '0') {
$("#dialog-confirm").dialog({
resizable: false,
title: "¡Favor confirmar!",
modal: true,
buttons: {
Yes: {
text: 'Si quiero publicar',
click: function () {
return true;
}
},
No: {
text: 'No quiero publicar',
click: function () {
return false;
}
}
}
});
}
else { return true;}
}
else { return true;}
}
}
我希望显示#dialog-confirm 对话框并等到用户选择是或否;如果是,则继续服务器进程,如果不是,则关闭对话框并返回表单
根据评论中的要求,此代码由使用的 ASP.NET 验证触发,如下所示
<asp:Button ID="btnPublicar" ValidationGroup="grp1" style="display:none;" ClientIDMode="static" runat="server" Text="Publicar" cssclass="btnPublicar"/><br />
<div id="cldisabled" style="display:inline-block;color:#ff0000">
<br />JavaScript está deshabilitado en su navegador web. Favor habilitarlo para poder publicar<br /><br />
</div>
<script>
document.getElementById("btnPublicar").style.display = 'inline-block';
document.getElementById("cldisabled").style.display = 'none';
</script>
<div id="validation_dialog" style="display: none">
<asp:ValidationSummary ValidationGroup="grp1" ID="ValidationSummary1"
runat="server" />
</div>
<div id="dialog-confirm" style="display: none">
<p><span class="ui-icon ui-icon-alert" ></span>Este aviso no es gratis
favor confirmar. ¿ Porque ? Seguramente por el rubro o por haber
escogido destacado o agregado una pagina web</p>
</div>
</div>