0

当 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>
4

0 回答 0