Страница входа на мой сайт 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
вызывает код выше, чтобы не работать правильно.
Как я могу получить правильный идентификатор модуля без жесткого кодирования?
Это сработало для меня! – TheIronCheek