Javascript 带有onclick return false的标记;仍然可以点击

Javascript 带有onclick return false的标记;仍然可以点击,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,我有一个链接: <a id="trigger" href="file.pdf" onclick="return false;">Download pdf</a> 有人能帮我理解这一点,以及如何有效地禁用锚定标记吗 更新:修复了$'trigger'[0].onclick=function{return false;}但一旦它到达锚定标记,该按钮仍用于文件下载 if( $('#input_1').hasClass('valid') ) { $('#trigger')

我有一个链接:

<a id="trigger" href="file.pdf" onclick="return false;">Download pdf</a>
有人能帮我理解这一点,以及如何有效地禁用锚定标记吗

更新:修复了$'trigger'[0].onclick=function{return false;}但一旦它到达锚定标记,该按钮仍用于文件下载

if( $('#input_1').hasClass('valid') )
{
    $('#trigger').attr("onclick", null);    
}
else // disable the button
{
    $('#trigger').on('click', function(e) { e.preventDefault(); } );
}
更好地使用默认方法。
也只对表单控件使用.prop方法

您需要执行以下任一操作:

$('#trigger')[0].onclick = function () {return false;}


对于这种情况,我想让人们更难绕过前端安全。但只有一点点,但显然这很容易被忽略

如果无效,请调用event.preventDefault 如果无效,则将类添加到元素。此类将指针事件设置为“无”,因此不会注册单击 检查是否已设置全局JS变量 var-valid=false; $valid-checkbox.changefunction{ var$this=$this, 触发器=$trigger; 如果$this.is:已选中{ 有效=真; $this.valvalid; trigger.removeClassdisabled; }否则{ 有效=错误; $this.valinvalid; trigger.addClassdisabled; } }; $trigger.clickfunction{ if valid==false | |$this.hasClassdisabled | |$valid-checkbox.val==invalid{ e、 防止违约; } }; .残疾人{ 不透明度:0.5; 指针事件:无; }
有效?jQuery没有onclick方法。。。通读api事件方法。首先,为什么要使用内联onclick?@charlietfl-woops,更正。此外,锚必须加载onclick=return false;仅对表单控件使用.prop方法有点误导-.prop应用于属性。操纵/访问表单元素属性是一个常见的用例,但这并不意味着它是唯一的用例。的确,它不仅可用于表单控件,而且我认为对于在您之后工作的人来说,调试更直观。这是正确的,但是,即使使用onclick=return false,单击时锚仍然会下载;设置
if( $('#input_1').hasClass('valid') )
{
    $('#trigger').attr("onclick", null);    
}
else // disable the button
{
    $('#trigger').on('click', function(e) { e.preventDefault(); } );
}
$('#trigger')[0].onclick = function () {return false;}
$('#trigger').click(function () {return false;});