【发布时间】:2014-11-16 08:20:45
【问题描述】:
我有几个单选按钮,我想阻止按向上/向下箭头键来更改选定的单选按钮。
如果您选择其中一个单选按钮,然后按向上/向下箭头键,它将选择上一个或下一个单选按钮。相反,我希望选择保持不变。为此,我可以在某些按键上使用event.preventDefault();。但是我仍然希望用户能够通过按箭头键在页面上上下滚动。
我该怎么做?
单选按钮:
<label>Value
<input type="radio" name="myradiobtn" value="value1">
</label>
<label>Value
<input type="radio" name="myradiobtn" value="value2">
</label>
<label>Value
<input type="radio" name="myradiobtn" value="value3">
</label>
<label>Value
<input type="radio" name="myradiobtn" value="value4">
</label>
<label>Value
<input type="radio" name="myradiobtn" value="value5">
</label>
Javascript 尝试(不工作):
$(document).keydown(function(e) {
var arrowKeys = [37,38,39,40];
if (arrowKeys.indexOf(e.which) !== -1) {
$('input[type="radio"]').each(function( index ) {
$(this).blur();
});
}
});
JsFiddle:
【问题讨论】:
-
这种工作,但为了使用箭头键滚动,您首先必须手动取消选择单选按钮,这对于普通用户来说有点尴尬
-
你说得对——我忘了
.blur()。 Corrected fiddle. -
太棒了,谢谢。一个小问题:第一次上/下键不滚动(但这可以通过使用
$(window).scrollTop()模拟)只有后续的使页面滚动,但除此之外,这正是我的想法。如果您将其发布为答案,我会将其标记为已接受 -
我尝试了一些想法来解决这个问题,但没有成功。
标签: javascript jquery html