Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在iOS上打开本机选择下拉列表_Javascript_Html_Ios_Safari - Fatal编程技术网

Javascript 防止在iOS上打开本机选择下拉列表

Javascript 防止在iOS上打开本机选择下拉列表,javascript,html,ios,safari,Javascript,Html,Ios,Safari,在windows设备上,我发现下拉列表是在mousedown事件时打开的,因此我可以在调用preventDefault-Function of mousedown事件时阻止它 即使使用javascript也可以防止在iOS上打开本机选择下拉列表吗 出于可访问性原因,“禁用”属性不是解决方案 var select=document.getElementById(“测试”), mousedownSpan=document.getElementById(“mousedown”), focusinSp

在windows设备上,我发现下拉列表是在mousedown事件时打开的,因此我可以在调用preventDefault-Function of mousedown事件时阻止它

即使使用javascript也可以防止在iOS上打开本机选择下拉列表吗

出于可访问性原因,“禁用”属性不是解决方案

var select=document.getElementById(“测试”),
mousedownSpan=document.getElementById(“mousedown”),
focusinSpan=document.getElementById(“focusin”),
focusoutSpan=document.getElementById(“focusout”);
select.addEventListener(“鼠标向下”,函数(事件){
event.preventDefault();
select.focus();
mousedownSpan.textContent=parseInt(mousedownSpan.textContent)+1;
});
select.addEventListener(“焦点”,事件=>{
event.preventDefault();
focusinSpan.textContent=parseInt(focusinSpan.textContent)+1;
});    
select.addEventListener(“focusout”,事件=>{
event.preventDefault();
focusoutSpan.textContent=parseInt(focusoutSpan.textContent)+1;
});

选择1
选择2
选择3
选择4

单击鼠标向下事件:0次
事件中的焦点被单击:0次

单击focusout事件:0次
只需将
disabled
属性添加到select元素,即可在所有浏览器中使用。@Teemu忘了提到这一点。出于可访问性原因,无法使用disabled属性。如果使用JS而不是HTML禁用元素,有什么区别?@Teemo Select仍然是可聚焦元素,屏幕阅读器将读取其可访问性状态。它只用于这个,我不太明白。您想禁用下拉列表,但仍保持其可访问性。。。此外,如果下拉菜单是可聚焦的,它也是按选项卡顺序的,桌面用户可以使用选项卡指向元素,单击空格,使用箭头键在选项中导航,并单击Enter键选择项目。