在iPad上,如何在不显示选项的情况下,通过Javascript事件对select元素设置focus()?
我们使用JavaScript创建和显示表单,然后将焦点设置在表单上的第一个控件上,该控件恰好是一个select元素。在配备iOS 8或iOS 9的iPad上,Chrome、Safari和Firefox会将焦点设置在select元素上,并用以下JavaScript代码显示select选项:在iPad上,如何在不显示选项的情况下,通过Javascript事件对select元素设置focus()?,javascript,ios,ipad,focus,Javascript,Ios,Ipad,Focus,我们使用JavaScript创建和显示表单,然后将焦点设置在表单上的第一个控件上,该控件恰好是一个select元素。在配备iOS 8或iOS 9的iPad上,Chrome、Safari和Firefox会将焦点设置在select元素上,并用以下JavaScript代码显示select选项: document.getElementById(“button1”).onclick=function(){ document.getElementById(“selectCtrl1”).focus() };
document.getElementById(“button1”).onclick=function(){
document.getElementById(“selectCtrl1”).focus()
};代码>
点击我!
红色
绿色
蓝色
将.focus()
调用包装成立即setTimeout怎么样
我正在我的iPad上测试,它似乎在没有任何初始下拉显示的情况下触发了focus
document.getElementById(“button1”).onclick=function(){
setTimeout(函数(){
document.getElementById(“selectCtrl1”).focus();
},0);
};代码>
点击我!
红色
绿色
蓝色
在更复杂的情况下,@mfink解决方案可以避免显示select的内容。尽管如此,我已经看到焦点被短暂地赋予了控件,然后在多次调用代码后被删除。我在提供的测试用例或我尝试过的更简单的用例中没有看到这种行为。