【发布时间】:2015-01-29 11:03:00
【问题描述】:
似乎禁用按钮“onclick”功能在以编程方式触发时仍会触发,例如:
<div>
<input type="button" onclick="save()" id="saveButton" value="save" disabled="disabled" />
<input type="button" onclick="byPassDisabled()" value="bypass disabled button"/>
<div id="counter">0</div>
function save(){
var count = parseInt($('#counter').html());
$('#counter').html(++count);
}
function byPassDisabled(){
$('#saveButton').click();
}
见http://jsfiddle.net/WzEvs/363/
在我的情况下,键盘快捷键绑定到触发按钮上的“.click()”的函数。我会发现必须禁用快捷方式或检查按钮是否自己被禁用非常烦人。我更喜欢解决此问题的通用解决方案。
- 但是为什么呢?这种行为对我来说似乎不公平。
- 有什么解决方法吗?
【问题讨论】:
-
感谢您的宝贵意见。我只是相信这不是预期的行为,仅此而已。或者,我可以使用 $('#saveButton:enabled').click();而是。
-
首先,不要使用内联处理程序。你的按钮有 id。使用 jquery 绑定事件处理程序
$('#id').click(blah)。其次,不要模拟事件来触发另一个功能。function tryToSave() {if(currentStateAllowYouToSave) save();}. -
1.我正在使用角度 ng-click 来绑定保存功能,我不能使用 id 来绑定它。 2. 键盘快捷键用于触发按钮。 3. 我不想检查按钮状态,这很麻烦
-
嗯,没有 Angular 库来处理键盘快捷键,是吗?
标签: javascript jquery