我在一个表格中遇到问题,我会进行一些
jquery验证.如果未填写特定输入字段,则应通过添加禁用属性来禁用“前进”按钮:
if errors $('.btn-move-forward').attr("disabled",true)
虽然有效,但我在该按钮上也有一个点击事件:
(CoffeeScript的)
$('.btn-move-forward').click -> $('#step2,#step3').toggle()
我希望.btn-move-forward在按钮被禁用时不会触发click事件,但确实如此!
第一:我不明白为什么,因为每个浏览器规范都定义了这不应该发生.无论如何,我试图通过做以下事情绕过它:
$('.btn-move-forward').click -> if !$(this).is(:disabled) $('#step2,#step3').toggle()
或这个
$('.btn-move-forward').click -> if $(this).prop("disabled",false) $('#step2,#step3').toggle()
或者像这样组合事件监听器:
$('.btn-move-forward').on 'click','.btn-move-forward:enabled',-> $('#step2,#step3').toggle()
不,所有这些都无法正常工作.该按钮仍然表现为前进按钮.
如果它被禁用,我想要的是没有收听onclick的按钮.
解决方法
disabled属性仅适用于表单元素.这意味着除非.btn-move-forward元素是< button>或< input type =“button”>那么disabled属性将无效.
您可以在此处使用按钮查看工作示例:
$('.btn-move-forward').prop("disabled",true).click(function() { console.log('Moving forward...'); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <button class="btn-move-forward">Move forward</button>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。