iOS 7 onchange事件在iPad 3 + Mini中破解//需要解决

请仅在运行ios 7的iPad上进行testing

看来iOS 7不支持iPad上的onchange事件的alert()和confirm()。 奇怪的是,它可以在运行ios 7.0和桌面浏览器的iPhone 4上运行,但不能运行在运行ios 7.0的ipad 3或ipad mini上。 它触发对话框,当点击它时会使button变暗(就像点击了button),然后浏览器冻结。 适用于iOS 7 iPad和iPad mini上的Safari和Chrome。

任何指针将不胜感激。 已经尝试onblur和onkeypress没有成功: – /

Options <select id="iCard" onchange="alert('It worked.')"> <option value="0" selected="selected">(none)</option> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> </select> 

问题可以在这里看到(确保在运行iOS 7的iPad上testing): http : //jsfiddle.net/sethsanders/MvSxm/

这里的解决方法http://jsfiddle.net/sethsanders/ZzkBd/

需要一个setTimeout来处理一个卡住的事件处理程序是非常IE7的

 function SetCard(sel) { setTimeout(function() { alert('SetCard called successfully.');},10); document.getElementById("msg").innerHTML=sel.value + ":" + sel.options[sel.selectedIndex].text; } 

显然它只是在iPad上的一个iOS7的错误。

在iPad上的HTMLselect看起来像popup(iOS开发人员使用popover概念)select。

我敢肯定,重点是在两个模式控制冲突 – select的popup和确认/提醒。 IE在确认/提示出现时,当select的popup窗口仍然可见,并locking确认/提醒。

正是在你的情况发生onchange事件。

在这种情况下setTimeout有帮助:

 <select id="iCard" onchange="setTimeout(function(){ alert('It worked.'); })">