我想在登录验证失败时禁用网站上的所有链接。当用户名不可用时,它必须防止用户在用户创建向导中执行后续步骤时的情况。不幸的是它不起作用,所有链接都启用了,而登录不正确我可以继续前进到下一步。这些是我的脚本:
$(document).on("change", "#User_UserName", function (){
var name = $('#User_UserName').val();
Users.Validate(name);
});
Validate: function(userName) {
SiteLoader.LockLoader();
$.ajax({
url: "/User/ValidateUsername",
type: 'POST',
data: { userName: userName },
complete: function() {
SiteLoader.UnLockLoader();
},
success: function(data) {
if (!data.valid) {
Users.BlockNextSteps();
$('#errorContainer').html('<div class="validation-summary-errors">' +
'<ul><li>Username unavailable.</li></ul></div>');
} else {
$('#errorContainer').html('<div class="validation-summary-ok">' +
'<ul><li>Username available</li></ul></div>');
}
}
});
},
BlockNextSteps: function() {
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; ++i) {
a[i].addEventListener('click', handleAnchor, false);
}
function handleAnchor(e) {
e.preventDefault();
}
},
答案 0 :(得分:0)
您不应该为页面上的每个链接添加处理程序。听起来不对。此外,还可以有其他处理程序,可以在handleAnchor
之前调用 - JS不提供任何处理程序执行顺序。
总的来说,这听起来像个糟糕的主意。您可能需要禁用的唯一链接是“下一步”按钮。此外,使用JS限制访问您网站的任何部分是完全没用的。