2013-10-07 23 views
0

我有一些網頁中的html <select>元素在應用中顯示(在UIWebView控件中)。其中一些允許多項選擇。當用戶更改列表中的某些內容時,我需要執行操作。對於多選,我需要在用戶完成重新安排複選框並點擊'完成'後執行操作。在html中的onblur在iOS 7中的UIWebView中選擇

它是如何在iOS 6中被執行(和完美的作品有):

<select onblur="alert('do something...');">...</select> 
<select multiple='multiple' onblur="alert('do something...');">...</select> 

的iOS 7問題:

<select onblur="alert('NOT ALWAYS WORK...');">...</select> 
<select multiple='multiple' onblur="alert('NOT ALWAYS WORK...');">...</select> 

<select onchange="alert('THIS WORKS');">...</select> 
<select multiple='multiple' onchange="alert('WORKS BUT NOT AS EXPECTED');">...</select> 

onblur不起作用relyable了。它僅在下面有其他文本框或下拉列表時起作用。如果它是頁面上唯一的下拉/文本框,則不會觸發。

我試過將onblur更換爲onchange,它的工作原理,但只適用於單一選擇。對於多選onchange,當用戶更改他的選擇時觸發,而不是完成時(通過單擊「完成」)。

任何想法如何解決這個在iOS 7中的單個和多個下拉列表?

也許我錯過了一些明顯的東西?

回答

0

我找到了解決方案。如果負載以下iOS中7(不是Safari瀏覽器)的HTML的UIWebView的onblur事件不起作用:

<html> 
<head> 
    <meta name='viewport' content='initial-scale=1.0,maximum-scale=10.0'/> 
</head> 
<body> 
<table style='height:80%'><tr><td> 

    <select onblur="alert('blur')" > 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
     </select> 
</td></tr></table> 
</body> 
</html> 

的重要組成部分:一些高度定義,選擇在這張桌子裏面。 如果刪除表格或刪除高度樣式或刪除視口,則onblur起作用。

我無法解釋這種效果,但我只是刪除表格的高度風格,它的工作原理。也許它有助於某人。