2013-09-23 24 views
3

請只在iPad上運行iOS測試這個7的iOS 7 onchange事件在iPad 3的破+迷你//需要解決

看來,iOS的7不支持警報()和confirm()爲iPad上的onchange事件。奇怪的是,它適用於運行ios 7.0和桌面瀏覽器的iPhone 4s,但不適用於運行ios 7.0的ipad 3或ipad mini。它會觸發對話框,點擊它會使按鈕變暗(就像點擊了按鈕一樣),然後瀏覽器凍結。適用於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> 

問題可以看這裏(請務必測試其在iPad上運行的iOS 7):http://jsfiddle.net/sethsanders/MvSxm/

+0

打破在iOS7改變一些評論 - 還指出這裏警告,確認和提示未在全屏Web應用程序的工作:HTTP:/ /www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review希望你不必等待更新 –

+0

感謝Adam,我在研究這個問題時遇到了那篇文章。但是,我們並未將其作爲主屏幕網絡應用運行。它只是像上面的jsFiddle一樣通過safari(或Chrome)運行。 –

回答

2

這裏解決方法http://jsfiddle.net/sethsanders/ZzkBd/

這是非常IE7需要setTimeout來處理卡住的事件處理程序

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

顯然它只是在iPad上的iOS7錯誤。

在iPad上的HTML選擇看起來像彈出式窗口(iOS開發人員使用彈出窗口概念)選擇。

我敢肯定,重點是兩個模態控制 - 選擇的彈出和確認/提醒衝突。 I.E.在選擇的彈出窗口仍然可見時出現確認/提醒,並鎖定確認/提醒。

確切說發生在你的情況爲平變化事件。

的setTimeout有助於在這種情況下:

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