DNN 8.00.02 - 获取当前模块 ID
DNN 8.00.02 - Get current module ID
当您按回车键时,我的 DNN 网站上的登录页面没有提交。在查看 /DesktopModules/AuthenticationServices/DNN/Login.ascx
文件后,我发现罪魁祸首是 <%#ModuleId%>
没有返回模块 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
的 ID 结束,但最后的 jQuery 吐出 dnn_ctr_Login_Login_DNN_cmdLogin
导致上面的代码无法正常工作。
如何在不进行硬编码的情况下获得正确的模块 ID?
我认为这是一个错误。我用 =ModuleId 替换了#ModuleId,它似乎可以工作。
我建议您尝试在 /DesktopModules/AuthenticationServices/DNN/Login.ascx 文件中进行此修改。
当您按回车键时,我的 DNN 网站上的登录页面没有提交。在查看 /DesktopModules/AuthenticationServices/DNN/Login.ascx
文件后,我发现罪魁祸首是 <%#ModuleId%>
没有返回模块 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
的 ID 结束,但最后的 jQuery 吐出 dnn_ctr_Login_Login_DNN_cmdLogin
导致上面的代码无法正常工作。
如何在不进行硬编码的情况下获得正确的模块 ID?
我认为这是一个错误。我用 =ModuleId 替换了#ModuleId,它似乎可以工作。 我建议您尝试在 /DesktopModules/AuthenticationServices/DNN/Login.ascx 文件中进行此修改。