2016-05-12 5 views
0

Страница входа на мой сайт DNN не отправляется, когда вы нажимаете enter. После того, как высунул файл /DesktopModules/AuthenticationServices/DNN/Login.ascx, я узнал, что виновником является то, что <%#ModuleId%> не возвращает идентификатор модуля.DNN 8.00.02 - Получить текущий модуль ID

Вот как он используется:

<script type="text/javascript"> 
    /*globals jQuery, window, Sys */ 
    (function ($, Sys) { 
     function setUpLogin() { 
      var actionLinks = $("a#dnn_ctr<%#ModuleId%>_Login_Login_DNN_cmdLogin"); 
      actionLinks.click(function() { 
       if ($(this).hasClass("dnnDisabledAction")) { 
        return false; 
       } 

       actionLinks.addClass("dnnDisabledAction"); 
      }); 
     } 

     $(document).ready(function() { 

      $('.dnnLoginService').on('keydown', function (e) { 
       if (e.keyCode === 13) { 
        var $loginButton = $('#dnn_ctr<%#ModuleId%>_Login_Login_DNN_cmdLogin'); 
        if ($loginButton.hasClass("dnnDisabledAction")) { 
         return false; 
        } 

        $loginButton.addClass("dnnDisabledAction"); 
        eval($loginButton.attr('href')); 
        e.preventDefault(); 
        return false; 
       } 
      }); 

      setUpLogin(); 
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() { 
       setUpLogin(); 
      }); 
     }); 
    }(jQuery, window.Sys)); 
</script> 

Кнопка Логин заканчивается идентификатором dnn_ctr3927_Login_Login_DNN_cmdLogin но окончательный JQuery выплевывает dnn_ctr_Login_Login_DNN_cmdLogin вызывает код выше, чтобы не работать правильно.

Как я могу получить правильный идентификатор модуля без жесткого кодирования?

ответ

2

Я думаю, что это ошибка. Я заменил #ModuleId на = ModuleId, и, похоже, он работает. Я предлагаю вам попробовать эту модификацию в файле /DesktopModules/AuthenticationServices/DNN/Login.ascx.

+0

Это сработало для меня! – TheIronCheek

Смежные вопросы