【发布时间】:2017-01-03 17:00:19
【问题描述】:
我的眼睛被毁了,所以这个问题将特定于键盘事件。
当我为按钮的单击事件定义处理程序时,如下所示:
$("#button").on("click", function() {
alert("clicked");
});
由于我不能使用鼠标(而且我认为大多数 Web 应用程序都使用 click 事件来执行 html 元素),我通过转到按钮并按 enter 来测试此事件。事件成功触发。从那时起,我开始相信按下回车键会模拟 html 元素的点击事件。我已经多次执行提交按钮,所以没有理由相信情况并非如此。
现在,我正在创建一个文本框,在访问该文本框时需要填充一个值。所以我这样做了:
$("#text").on("click", function() {
alert("clicked");
});
但是,按 Enter 键不再起作用,不会出现任何值。但是当其他人使用鼠标单击元素时,事件会成功触发。
这是我正在处理的代码:
我正在使用 jquery-ui 的自动完成功能。我希望在用户进入文本框时填充文本框。我按回车进入...
$( "#tags" ).autocomplete({
source: names,
minLength: 0,
select: function( event, ui ) {
var index = names.indexOf($(this).prop("value"));
$(this).val("");
$("#selected").append("<li>"+names[index]+
"<input type='hidden' id='id' value='"+ids[index]+"'/>"+
"<a href=''>remove</a></li>");
ids.splice(index, 1);
names.splice(index, 1);
return false;
}
}).on("click", function(event) {
$(this).autocomplete("search", $(this).val());
});
按下回车键和鼠标点击真的有区别吗?我该怎么办?
【问题讨论】:
-
我相信这对于像按钮这样的可点击元素来说是正确的,但是在文本框中,输入具有不同的含义,即返回。空格键也可以作为点击的替代品。
-
提交按钮具有“默认”状态,因此当用户点击
时会被“点击”。如果您添加“提交”按钮,它将按预期工作。
标签: javascript jquery events jquery-ui-autocomplete screen-readers