首页 文章

当OnBegin返回false时,Ajax.BeginForm显示loadingElementId

提问于
浏览
0

你好,我在这篇文章中遇到了同样的问题:

Ajax.BeginForm not hiding loading element when onBegin fails但我还没有找到解决方法 .

基本上当我使用带有OnBegin函数的Ajax.BeginForm并且此函数返回false时,仍会显示加载elementID,它永远不会再次隐藏 .

这是我正在测试它的代码:

function isValid() {
    return false
} 


<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
       , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
{ %>

1 回答

  • 1

    我不记得确切的解决方案,我很久以前就决定编写自己的简单Html来处理Ajax调用要好得多 .

    如果你想要,你可以在这里发布你的代码,我可以告诉你如何使用JQuery .

    现在,如果您想坚持使用此解决方案,您仍然可以使用JQuery手动隐藏元素,如下所示:

    <% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
       , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
    { %>
    
    <script type="text/javascript" language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>">//Jquery reference
    </script>
    
    <script type="text/javascript" language="javascript">
       function isValid() {
           if (true) // In case i whant to return true
           {
               return true;
           }
           else // I whant to return false
           {
               $('#updatePanel').hide(); // Manually hide the LoadingElementId
               return false;
           }
       }    
    </script>
    

相关问题